Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 模板类隐式复制构造函数问题_Templates_Copy Constructor - Fatal编程技术网

Templates 模板类隐式复制构造函数问题

Templates 模板类隐式复制构造函数问题,templates,copy-constructor,Templates,Copy Constructor,在gdb中逐步执行我的程序,第108行返回到调用函数,并且不调用类A中的复制构造函数,就像(我认为)它应该: template <class S> class A{ //etc... A( const A & old ){ //do stuff... } //etc... }; template <class T> class B{ //etc... A<T> ReturnsAnA(){

在gdb中逐步执行我的程序,第108行返回到调用函数,并且不调用类A中的复制构造函数,就像(我认为)它应该:

template <class S> class A{
    //etc...
    A( const A & old ){
        //do stuff...
    }
    //etc...
};

template <class T> class B{
    //etc...
    A<T> ReturnsAnA(){
        A<T> result;
        // do some stuff with result
        return result; //line 108
    }
    //etc...
};
模板类别A{
//等等。。。
A(常数A和旧){
//做些事情。。。
}
//等等。。。
};
B类模板{
//等等。。。
A返回萨那(){
结果,;
//做一些有结果的事情
返回结果;//第108行
}
//等等。。。
};
有什么提示吗?我已经为这件事绞尽脑汁4个小时了,似乎想不出这里发生了什么。

已经生效了。您的复制构造函数将作为优化被删除(这是标准允许的,尽管会导致不同的行为)

另见

(模板与此无关。)