5
unordered_multimap와 함께 실패아이겐 :: aligned_allocator는 표준 : 내가 엑스 코드 (6)이 코드를 컴파일하려고
/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
을 사용하는 것이 여전히 필요가 :
std::unordered_multimap< Frame*, Sim3, std::hash<Frame*>, std::equal_to<Frame*>, Eigen::aligned_allocator< std::pair<const Frame*,Sim3> > > trackingFailed;
그것은 실패 아이겐 3.2.2? C++ 11/C++ 14 및 libC++에서 왜 실패합니까?
편집 : 나는이 unordered_map
템플릿 선언에서 아이겐 할당을 제거하면
나는 no type named value_type
를 얻을.
고맙습니다. 오류는 완전히 잘못된 것입니다. 이것은 내 코드가 아니며 다른 프로젝트에서 사용되었습니다. 어떻게 컴파일했는지 이해하지 못합니까? 어쩌면 GNU 컴파일러가 덜 엄격할까요? – aledalgrande
@aledalgrande 아마도 libstdC++는 할당 자의 값 유형이 컨테이너의 값 유형과 같아야한다는 것을'static_assert'하지 않습니다. – Columbo
나는 본다. Clang/libC++는 (나의 작은 경험에서) C++ 11 구조에 대해 용서하지 않는 것 같습니다. – aledalgrande