我试图在XCode 6中编译此代码:
std::unordered_multimap< Frame*, Sim3, std::hash<Frame*>, std::equal_to<Frame*>, Eigen::aligned_allocator< std::pair<const Frame*,Sim3> > > trackingFailed;
Run Code Online (Sandbox Code Playgroud)
它失败了:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/unordered_map:1461:5: Static_assert failed "Invalid allocator::value_type"
Run Code Online (Sandbox Code Playgroud)
是否仍然需要aligned_allocator在Eigen 3.2.2中使用?为什么C++ 11/C++ 14和libc ++失败了?
编辑:
no type named value_type如果我从unordered_map模板声明中删除Eigen分配器,我会得到.
Col*_*mbo 10
我相信错误是指针应该是const,而不是指针.
即尝试Eigen::aligned_allocator< std::pair<Frame* const, Sim3> >作为分配器类型.