Eigen :: aligned_allocator使用std :: unordered_multimap失败

ale*_*nde 6 c++ eigen c++11

我试图在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> >作为分配器类型.