в соответствии с cppreferenceпредупреждение не выдается на устаревшей beheavior в C++ 11
генерации неявно определенного конструктора копирования является устаревшим, если Т имеет определенный пользователем деструктор или определенную пользователем копию оператор назначения.
, но следующий код, не предупреждающее сообщение не выдается с использованием лязг ++ и 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
ли это ожидаемое поведение г ++ и лязг ++?
Я запускать команду в Ubuntu лязгом ++/г ++ -Wdeprecated -o тест -std = C++ 14 -O3 -pedantic-ошибки основной .cpp (clang ++ 3.6, g ++ 4.8.2), но предупреждения нет. – camino