Повысьте некопируемую ошибку при создании карт STXXL

0

Я выполнял некоторую работу с STXXL, и я столкнулся с проблемой с картами, наследующими от boost :: noncopyable... Для этого проекта я создаю несколько карт с инструкцией:

stxxl::map<int, mapData, CmpIntGreater, 4096, 4096> node_map((stxxl::unsigned_type)(4096 * 4), (stxxl::unsigned_type)(4096 * 3));

Излишне говорить, что жестко закодированные значения в конструкторе будут заменены после решения этой проблемы, но в любом случае я получаю ошибку:

C2248: 'boost::noncopyable_::noncopyable::noncopyable': cannot access private member declared in class 'boost::noncopyable_::noncopyable'

Кто-нибудь еще столкнулся с этой проблемой с картами STXXL? Или у кого-нибудь есть общие рекомендации или рекомендации при работе с не подлежащими копированию объектами?

Спасибо за вашу помощь. :)

Теги:
oop
boost
bigdata
stxxl

1 ответ

0
Лучший ответ

Чтобы добавить официальный ответ здесь, чтобы принять, моя проблема заключалась в том, что у меня были некоторые функции, возвращающие карты по значению, а некоторые аргументы функции передавались по значению. Как только это было исправлено, он работал как шарм! Итак, мораль этой истории, при использовании версии STXXL, которая наследуется от noncopyable, убедитесь, что все экземпляры вашего объекта STXXL используются с вашими функциями только по ссылке, а не по значению.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню