{} を使う初期化(波かっこ初期化)では、情報が失われる可能性のある変換(double → int など)が禁止されています。
出るコード
int main() {
int x{3.14}; // double を int へ縮小変換
return x;
}
エラーメッセージ
error: narrowing conversion of '3.14e+0' from 'double' to 'int' [-Wnarrowing]
直し方
意図した変換なら int x = static_cast<int>(3.14); のように明示的にキャストします。あるいは = による通常の初期化に変えます(警告は出ますがエラーにはなりません)。