#include <iostream>template<int N> struct fact { enum { value = N * fact<N-1>::value }; };template<> struct fact<1> { enum { value = 1 }; };int main(){ const int x = fact<3>::value; std::cout << x << "\n"; return 0;}
我想回到第3号(因为事实< 3>事实< 2>和事实< 1>被实例化).这个例子当然是微不足道的,但是每当你开始使用例如Boost.MPL,编译时间真的爆炸了,我想知道这是多少是由于隐藏的类实例.我的问题主要是为Visual C,但gcc的答案也将不胜感激.
编辑:我目前对Visual C的非常脆弱的方法是从Stephan T. Lavavej的videos / d1reportAllClassLayout之一添加编译开关,并在输出文件上执行一个grep字数,但它(a)大大增加了编译次数,(b)正则表达式很难得到100%正确.
解决方法 我做了一个 one-line change到GCC,使它打印出每个类模板的名称,当它实例化它.您可以直接调用C前端cc1plus,而不使用-quIEt标志来获取功能模板的相同.我还没有把它转化为一个合适的GCC选项,这只是我自己的源代码树上的一个黑客.我正在考虑将其作为插件来实现,但并不在我的Todo列表的顶部.
总结以上是内存溢出为你收集整理的c – 自动计算TMP中的实例化类的数量?全部内容,希望文章能够帮你解决c – 自动计算TMP中的实例化类的数量?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)