什么是MPL值成语?

时间:2014-05-09 07:02:11

标签: c++ templates metaprogramming

我正在浏览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;

它用于什么?我可以举例说明用例吗?

1 个答案:

答案 0 :(得分:1)

从您的链接:

  

防止代码膨胀,只实例化所需内容。

在幻灯片35上,演示者给出了一个例子,其中来自习语的A类对应于Reportable类。

通过这个成语,他实现了只需要实例化的类。比较他之前的例子(幻灯片32),他必须定义该类的对象是否将被使用。模板化版本不会发生这种情况。