Почему я не могу этого сделать?
typedef boost::interprocess::unique_ptr<QueueList, QueueListDeletor> UQList;
typedef boost::intrusive::list<UQList> List; // Compiler (VS 2003) complains
QueueList - это класс, производный от public boost::intrusive::list_base_hook<>
, чтобы сделать его частью навязчивого связного списка.
Я хочу использовать unique_ptr, чтобы иметь возможность передавать этот объект между потоками и иметь только 1 единственный поток, владеющий этим объектом одновременно.
EDIT:
ОШИБКИ:
ошибка C2039: указатель: не является членом boost :: intrusive :: detail :: default_list_hook
см. объявление 'boost :: intrusive :: detail :: default_list_hook'
смотрите ссылку на экземпляр шаблона класса 'boost :: intrusive :: list_impl', который компилируется
с
[
Config = повышение :: интрузивный :: listopt :: value_traits, повышение :: навязчивого :: size_type :: упаковка> :: типа, повышение :: навязчивого :: constant_time_size> :: Вид> :: size_type, правда>
]
ошибка C2039: 'const_pointer': не является членом 'boost :: intrusive :: detail :: default_list_hook'
см. объявление 'boost :: intrusive :: detail :: default_list_hook'