Я пытаюсь скомпилировать этот код в XCode 6:Эйген :: aligned_allocator терпит неудачу с стандом :: unordered_multimap
std::unordered_multimap< Frame*, Sim3, std::hash<Frame*>, std::equal_to<Frame*>, Eigen::aligned_allocator< std::pair<const Frame*,Sim3> > > trackingFailed;
Он терпит неудачу с:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/unordered_map:1461:5: Static_assert failed "Invalid allocator::value_type"
ли еще необходимо использовать aligned_allocator
в Eigen 3.2.2? Почему это происходит с C++ 11/C++ 14 и libC++?
EDIT:
Я получаю no type named value_type
если удалить аллокатор Эйгена из декларации unordered_map
шаблона.
Большое спасибо! Ошибка полностью вводила в заблуждение. Это не мой код, и он использовался в других проектах, не понимаю, как он скомпилирован для них? Может быть, компилятор GNU менее строг? – aledalgrande
@aledalgrande Возможно, libstdC++ не является 'static_assert', что тип значения распределителя должен быть таким же, как тип значения контейнера. – Columbo
Я вижу. Кажется, Clang/libC++ не прощают конструкции C++ 11 (из моего небольшого опыта). – aledalgrande