【发布时间】:2015-04-07 02:43:24
【问题描述】:
隐式定义的复制构造函数的生成是 如果 T 具有用户定义的析构函数或用户定义的副本,则不推荐使用 赋值运算符。
但是下面的代码,使用clang++和c++没有给出警告信息
struct CAT
{
CAT(){cout<<"CAT()"<<endl;}
~CAT(){}
};
int main()
{
CAT c1, c2;
CAT c3(c1); //should print out a warning?
}
clang++-3.6 -W -Wall -Wextra -pedantic -O2 -o m main.cpp -pedantic-errors -std=c++14
这是 g++ 和 clang++ 的预期行为吗?
【问题讨论】: