Advanced Metaprogramming in Cl
rasishou
这个作者很懒,什么都没留下…
展开
-
02小对象工具
如果需要保证类型T包含一个名为value的常量或名为type的类型,可以这样写:template <typename T>void myfunc(){typedef typename T::type ERROR_T_DOES_NOT_CONTAIN_type;const int ASSERT_T_MUST_HAVE_STATIC_CONSTANT_value(T::value)...翻译 2018-05-09 14:55:26 · 144 阅读 · 0 评论 -
03静态编程
当类模板产生实例时,编译器生成:1.每个成员在类级别的签名2.所有静态常量和typedef3.严格需要的函数体当需要同样的实例的时候,通过查找来找到。例如:template <size_t N>struct sum_of_integers_up_to{ static const size_t value = N + sum_of_integers_up_to<N-1>...翻译 2018-05-10 10:56:39 · 209 阅读 · 0 评论 -
01 模板
编译时常量语语法是static const [[integer type]]name=value编译时常量可以是:1.整型字面值,如27,0x052.sizeof和具有整型结果的非标准语言运算符,如__alignof__3.非类型模板参数template<int N>class AnotherClass{SomeClass<N>myMember;//这里的N就是};4.整型...翻译 2018-05-08 10:17:55 · 170 阅读 · 0 评论