C++ boost::mpl::list是否会太长?

C++ boost::mpl::list是否会太长?,c++,boost-mpl,C++,Boost Mpl,我的应用程序要求为我们的代码库支持的每个设备实例化(并注册)100-200个事件处理程序类。我的想法是将这些处理程序放在这样一个列表中 typedef mpl::list< HandlerFoo, HandlerBar, TypedHandler<char> , TypedHandler<bool> ... // lots more

我的应用程序要求为我们的代码库支持的每个设备实例化(并注册)100-200个事件处理程序类。我的想法是将这些处理程序放在这样一个列表中

typedef mpl::list<
            HandlerFoo,
            HandlerBar,
            TypedHandler<char> ,
            TypedHandler<bool>
            ...         // lots more
            > EventHandlers;
typedef mpl::list<
HandlerFoo,
把手,
TypedHandler,
打字机
...         // 更多
>事件处理程序;

然后使用
boost::mpl::for_each
遍历处理程序列表并实例化每种类型。问题是,正如我所说,我可能不得不列出多达200个。这是过度使用了boost::mpl::list还是有更合适的替代方法?

试试C++11可变模板。如果不能使用C++11,请尝试嵌套的
mpl::list
s(大约20个列表,每个列表包含10个元素)。按照C++03标准,这可能会过多,但现代编译器更宽容。@MSalters编译器是,boost::mpl::list(默认情况下)不是。它接受20个参数,你需要跳转来改变它。