我正在浏览tutorial关于生成编程的内容,我偶然发现了 MPL-value习语:
template <int V>
class A
{
A();
public:
static const A<V> value;
};
template <int V>
static const A<V> A<V>::value;
它用于什么?我可以举例说明用例吗?
答案 0 :(得分:1)
从您的链接:
防止代码膨胀,只实例化所需内容。
在幻灯片35上,演示者给出了一个例子,其中来自习语的A类对应于Reportable类。
通过这个成语,他实现了只需要实例化的类。比较他之前的例子(幻灯片32),他必须定义该类的对象是否将被使用。模板化版本不会发生这种情况。