通用初始化的工作导致析构函数被额外调用一次

问题描述

build(context){
   context.theme; /// this
   return ...
}

输出


        #include<iostream>
        #include<vector>

        class test {
            public:
                  virtual ~test() 
                  {
                      std::cout<<"inside destructor \n";
                  }
    
        };
    


        int main()
        {
            std::cout<<"---with universal initializer--------- \n";
            {
             test t1;
             std::vector<test> v{t1};
            }
            std::cout<<"----- ending universal initailizer ----- \n";
    
            std::cout<<"------------------------\n ";
            test t2;
            std::vector<test> v2(1,t2);
    

            return 0;
         }

我的问题是,使用通用初始化完成初始化后,为什么与其他初始化相比,析构函数被称为额外的时间或额外的对象被创建

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)