r*********r 发帖数: 3195 | 1 有什么好的文档解释variant 设计的吗? 直接看源码好累啊.
读了 andrei alexandrescu 的文章 "an implementation of discriminated unions
in c++"
还比较好懂. 但是 boost 的这个 variant 好像要复杂很多.
btw, 是一定要看懂 mpl 吗? | h****e 发帖数: 2125 | 2 no and no
【在 r*********r 的大作中提到】 : 有什么好的文档解释variant 设计的吗? 直接看源码好累啊. : 读了 andrei alexandrescu 的文章 "an implementation of discriminated unions : in c++" : 还比较好懂. 但是 boost 的这个 variant 好像要复杂很多. : btw, 是一定要看懂 mpl 吗?
| r*********r 发帖数: 3195 | 3 确实找不到文档. 而且 variant 和 mpl 的作者好像都是小本, 会写代码不会解释.
今天读了一篇 mpl 的文章, 看得火大. | p***o 发帖数: 1252 | 4 mpl不是有本书么?
C++ Template Metaprogramming: Concepts, Tools, and Techniques
from Boost and Beyond
我觉得说的很清楚。boost的代码不好看,有很多兼容不同编译器
的花招。把mpl搞明白就可以去面试别人C++模板了 ...
【在 r*********r 的大作中提到】 : 确实找不到文档. 而且 variant 和 mpl 的作者好像都是小本, 会写代码不会解释. : 今天读了一篇 mpl 的文章, 看得火大.
| r*********r 发帖数: 3195 | 5 手头有这本书. 这两个作者还写了篇paper:
the boost c++ metaprogramming library, 30页. 主要的技术都讲了,
比看书更efficient 点.
我现在看code 的方法是, 用 g++ -E 编译一个空的程序(把要看的头文件加进去)
然后看生成的文件, 这样能跳过那些讨厌的宏 | r*********r 发帖数: 3195 | 6 能不能让编译器打印出 template instantiation 的过程?
如果 partial specialization 一大堆的话, matching 结果很难看出来... |
|