Image
Image

elecintop

+ 关注

粉丝 3     |     主题 176     |     回帖 1329

C++模板元编程(C++ template metaprogramming)
2018-12-17 16:34
  • 万利电子
  • 89
  • 9710
  5、文献[17]列了 C++ 模板的参考书,共四本; 6、好多东西,书上讲的比较浅显,而且不全面,有时候直接看 C ...  
  4、wikibooks.org 上有个介绍 C++ 各种编程技巧书:More C++ Idioms,文献[15];  
  3、很推荐《深入实践C++模板编程》这本书,这篇博文大量参考了这本书;  
  2、另外一个 C++ 库也值得一看,那就是 Boost 库,Boost 的元编程库参考文献[16]; ...  
  进一步学习 C++ 确实比较复杂,这可能是因为,虽然 C++ 语言层次比较低,但它却同时可以实现很多高级特性 ...  
  13、模板甚至可以获得类型的内部信息(是否有某个 typedef),这是反射中的内省,C++ 在语言层面对反射支持 ...  
  10、C++ 模板编程的两个问题是:难调试,会产生冗长且难以阅读的编译错误信息、代码膨胀(源代码膨胀、二进 ...  
  7、C++ 模板是图灵完备的,模板编程是函数编程风格,特点是:没有可变的存储、递归,以“”为输入,typedef ...  
  4、模板一般在头文件中定义,可能被包含多次,编译和链接时会消除等价模板实例; 5、template、typename、t ...  
  10. 总结 博文比较长,总结一下所涉及的东西: 1、C++ 模板包括函数模板和类模板,模板参数形式有:类型 ...  
  现在,只需将上面元容器和元容器查找函数修改为:对模板实例将其换为代表实例,即修改 meta_container 通例 ...  
  上面例子已经实现了存储类型的元容器,和元容器上的查找算法,但还有一个小问题,就是它不能处理模板,编译 ...  
  利用和上面例子类似的模板参数移位递归的原理,我们可以构造一个存储“类型”的元组,即元容器,其代码如下 ...  
  在讲元容器之前,我们先来看看伪变长参数模板(文献[1] 12.4),一个可以存储小于某个数(例子中为 4 个) ...  
  9. 元容器 文献[1]第 13 章讲了元容器,所谓元容器,就是类似于 std::vector 那样的容器,不过它存储的是 ...  
  这个例子是有缺陷的,因为不存在引用的指针,所以不用用来检测引用类型定义。可以看到,因为只涉及类型推断 ...  
  下面这个例子检查某个类型是否含有某个嵌套类型定义(参考了文献[4] Substitution failure is not an erro ...  
  8. 更多类型计算 在第1节我们讲类型等价的时候,已经见到了一个可以判断两个类型是否等价的模板,这一节我 ...  
  有了这样的判断,还可以根据判断结果做更复杂的元编程逻辑(如一个算法以迭代器为参数,根据迭代器标签进行 ...  
  标签(tag)一般是一个空类,其作用是作为一个独一无二的类型名字用于标记一些东西,典型的例子是 STL 迭代 ...  
2
3
近期访客