2015-05-04 5 views
-2

Если я говорю об этом, я получаю странный компилятор (gcc4.9, форсирует 1_58) ошибка позже:Boost.Intrusive и fast_pool_allocator

Когда я иду в этот IL:

for(auto & odp : odpList[i]) //<-error here 
{ 

/usr/local/include/boost/intrusive/pack_options.hpp|33|error: no class template named ‘pack’ in ‘class boost::fast_pool_allocator<OneDepthPrice>’ 

typedef std::tuple<int, int> OneDepthPrice 
typedef boost::intrusive::list<OneDepthPrice, boost::fast_pool_allocator<OneDepthPrice>, constant_time_size<false>> BaseList; 

Каков правильный способ сделать это?

+0

Просьба указать минимальный код кода, необходимый для создания вашей ошибки. И, пожалуйста, напишите всю свою ошибку. Пожалуйста, разместите комментарии, подробно описывающие, на какие строки ссылаются. Если вы используете библиотеку, а также форму линий, они упоминаются в сообщениях об ошибках, пожалуйста, укажите версию библиотеки. Эти улучшения можно редактировать по одному за раз. – Yakk

+0

Yakk, есть ли способ использовать fast_pool_allocator с интрузивным списком? – Ivan

ответ

1

Это потому, что распределитель не является «опцией», которую вы можете передать.

Не имеет смысла пытаться передать распределитель в интрузивный контейнер, хотя, поскольку вы будете управлять распределением вне контейнера.