Próbuję skompilować ten kod w Xcode 6:Eigen :: aligned_allocator nie z std :: unordered_multimap
std::unordered_multimap< Frame*, Sim3, std::hash<Frame*>, std::equal_to<Frame*>, Eigen::aligned_allocator< std::pair<const Frame*,Sim3> > > trackingFailed;
nie powiedzie się z:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/unordered_map:1461:5: Static_assert failed "Invalid allocator::value_type"
Czy jest jeszcze konieczne stosowanie aligned_allocator
w Eigen 3.2.2? Dlaczego nie działa w C++ 11/C++ 14 i libC++?
EDIT:
uzyskać no type named value_type
jeśli usunąć podzielnika EIGEN z deklaracją unordered_map
szablonu.
Wielkie dzięki! Błąd był całkowicie mylący. To nie jest mój kod i został użyty w innych projektach, nie rozumiem, jak je skompilował? Może kompilator GNU jest mniej rygorystyczny? – aledalgrande
@aledalgrande Być może libstdC++ nie "static_assert", że typ wartości alokatora musi być taki sam jak typ wartości kontenera. – Columbo
Rozumiem. Wygląda na to, że Clang/libC++ nie wybacza konstrukcji C++ 11 (z mojego małego doświadczenia). – aledalgrande