什么是mpls值习惯用法?

What is the MPL-value idiom ?

本文关键字:惯用法 习惯 mpls 什么      更新时间:2023-10-16

我正在浏览生成式编程的教程,我偶然发现了 mpls值习惯用法:

template <int V>
class A
{
    A();
public:
    static const A<V> value;
};
template <int V>
static const A<V> A<V>::value;

它的用途是什么?我可以有一个示例用例吗?

从你的链接:

防止代码膨胀,只实例化需要的。

在幻灯片35中,演示者给出了一个例子,其中习语中的类A对应于类可报告。

通过这个习惯用法,他实现了只实例化需要的类。比较一下他前面的例子(幻灯片32),在这个例子中,他必须定义一个类的对象,不管它是否会被使用。模板化版本不会发生这种情况。