在Boost MPL和Fusion中启用任意大小的集合

时间:2017-02-20 18:38:27

标签: c++ c++11 boost

使用Boost Fusion和MPL集合,我最终不得不将其添加到编译器标志中:

BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
BOOST_MPL_LIMIT_VECTOR_SIZE=50
FUSION_MAX_VECTOR_SIZE=50
FUSION_MAX_MAP_SIZE=50

我使用Visual Studio 2015(更新3)和Boost 1.62。

通过使用可变参数模板,Hasn对任意大小的集合的支持是否已添加到这些库中?

如果是这样,我如何强制MPL和Fusion使用Visual Studio的可变版本?

1 个答案:

答案 0 :(得分:1)

Fusion在很长一段时间内拥有varadic容器,但由于ICE(内部编译器错误)而导致MSVC被禁用。为MSVC(VS2015 U3 +)重新启用varadic容器的patch登陆了Boost 1.65。

MPL没有varadic支持。有一些尝试(例如,Boost.Hana开发人员的mpl11),但没有人以PR结束。