C++ 一个Loki序列可以有多少个元素?
我知道boost MPL列表或向量的最大长度是半可定义的,但在大约30个元素之后,编译器讨厌我。一个Loki序列可以有多少个元素?它是用户定义的吗?显示了18个隐藏的模板参数,所以这应该是上限C++ 一个Loki序列可以有多少个元素?,c++,boost-mpl,loki,typelist,C++,Boost Mpl,Loki,Typelist,我知道boost MPL列表或向量的最大长度是半可定义的,但在大约30个元素之后,编译器讨厌我。一个Loki序列可以有多少个元素?它是用户定义的吗?显示了18个隐藏的模板参数,所以这应该是上限 template < typename T1 = NullType, typename T2 = NullType, typename T3 = NullType, typename T4 = NullType, typename T5
template
<
typename T1 = NullType, typename T2 = NullType, typename T3 = NullType,
typename T4 = NullType, typename T5 = NullType, typename T6 = NullType,
typename T7 = NullType, typename T8 = NullType, typename T9 = NullType,
typename T10 = NullType, typename T11 = NullType, typename T12 = NullType,
typename T13 = NullType, typename T14 = NullType, typename T15 = NullType,
typename T16 = NullType, typename T17 = NullType, typename T18 = NullType
>
struct MakeTypelist { /* stuff */ };
模板
<
typename T1=NullType,typename T2=NullType,typename T3=NullType,
typename T4=NullType,typename T5=NullType,typename T6=NullType,
typename T7=NullType,typename T8=NullType,typename T9=NullType,
typename T10=NullType,typename T11=NullType,typename T12=NullType,
typename T13=NullType,typename T14=NullType,typename T15=NullType,
typename T16=NullType,typename T17=NullType,typename T18=NullType
>
结构MakeTypelist{/*stuff*/};
AFAIR它最多有20个左右,可能是25个。Alaxandrescou已经展示了一种方法来扩展它。你能升级你的编译器,让它拥有可变模板吗?“这将大大减轻你的痛苦。”马蒂厄姆说。还不是很遗憾,这是否使boost::mpl::list能够处理更大的列表?(比如100)不久前我遇到了一个问题,很多类型都需要成为变体的一部分,而由于mpl::list size约束,我无法使用boost::variant。如果在升级编译器时它能正常工作,我会很酷的。