Предупреждение C4626 не позволяет нам перейти с std: c ++ 17 на std: c ++ последней версии.Он генерируется с 19.22 (а не 19.21 или более ранней), в основном, для каждой лямбды.
#pragma warning(default : 4626)
int main()
{
int foo;
auto bar = [&]() {
foo;
};
return 0;
}
<source>(8): warning C4626: 'main::<lambda_1>': assignment operator was implicitly defined as deleted
Скомпилировано с / std: c ++ latest / W4
Это предупреждение не является ошибочнымНо многословный по моему мнению.Мы хотели бы оставить C4626 включенным, чтобы получать предупреждение при выводе из явно / неявно удаленного оператора присваивания.Поскольку мы отображаем каждое предупреждение как ошибку, сейчас это невозможно.
Требуется ли этот уровень многословия?Или это можно назвать ошибкой?