模板类/结构的静态成员将在VS2017中构造3次,为什么?

时间:2019-03-26 07:56:49

标签: c++ templates c++17

class A
    {
    public:
        A(){cout << "A constructor\n";}
        ~A(){cout << "A destructor\n";}
    private:
        int a = 0;
    };

template<class T>
    struct GlobalVaribleHolder
    {
        inline static A a;
    };

void test()
{
    GlobalVaribleHolder<int>::a;
}

void main()
{

}

结果: enter image description here

构造函数

构造函数

构造函数

一个析构函数

一个析构函数

析构函数

即使不调用测试,Class-A对象也会被构造3次。

0 个答案:

没有答案