C++ 一个Loki序列可以有多少个元素?

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

我知道boost MPL列表或向量的最大长度是半可定义的,但在大约30个元素之后,编译器讨厌我。一个Loki序列可以有多少个元素?它是用户定义的吗?

显示了18个隐藏的模板参数,所以这应该是上限

     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。如果在升级编译器时它能正常工作,我会很酷的。