模板元编程可用于在编译时而不是在运行时期间计算诸如阶乘的事物.我听说一些编程竞赛对编译时间的限制正是为了清除模板元编程滥用.
是否有任何无辜的使用模板的例子需要花费很长时间(如几个小时)来编译?
解决方法
模板机制是Turing-complete.这意味着至少在理论上,任何可以完成的计算都可以在编译时以这种方式完成(实际上,您可能会很快遇到模板深度等硬限制,但这取决于编译器).
你是否想要这样做是一个单独的问题.您可以使用昂贵的算法轻松匹配“编译小时数”的标准.但是还有更实用的代码,比如this one implementing an FFT;给一个足够大的数据集,这需要一段时间……