c++模板元编程就是bullshit
学完所谓的模板元编程,我觉得c++模板元编程就是一坨屎。你可以振振有词的说它可以简化计算时间。好,你除了提供那几个所谓经典的例子外还有什么其它什么用么?说是图灵完备,连个在编译期调用个函数都处理不了,如下例
template<int degree>
struct SinVal
{
enum { m_inner_val = (int)(sin( (float)(degree / 360 )*3.14 ) * 1000 ) };
static float GetVal()
{
return (m_inner_val / 1000);
}
};
我本来想用它来实现一个sin的快速版,结果编译器根本处理不了!其实所谓的模板元编程都可以用C++中最简洁的手法实现,你只需要预先将你需要的值直接赋值给一个类中常量就可了。搞什么这种飞机。
再说,表面上元编程减少了代码的量,但是在编译后其实会“实例化”出很多个类类型出来。并且关键是元编程必需在编译器就能确定参数值,有个毛用。