タグ付けされた質問 「uniform-initialization」

4
「intchar」の2つのタイプで変数を宣言する
私はC ++の初心者で、Bjarne Stroustrupのプログラミング:C ++を使用した原則と実践を読んでいます。 3.9.2安全でない変換に関するセクションで、著者は言及しました イニシャライザが整数リテラルの場合、コンパイラは実際の値をチェックし、ナローイングを意味しない値を受け入れることができます。 int char b1 {1000}; // error: narrowing (assuming 8-bit chars) 私はこの宣言に戸惑っています。2つのタイプ(intとchar)を使用します。私はこれまでJavaとSwift(私が比較的よく知っている2つの言語)でそのような宣言を見たことがありません。これはタイプミスですか、それとも有効なC ++構文ですか?

1
3レベルの配列を初期化するのに3レベルのブレースが必要ないのはなぜですか?
私はこの例に出くわしました struct sct { int t[2]; }; struct str { sct t[2]; }; int main() { str t[2] = { {0, 2, 4, 6}, {1, 3, 5, 7} }; //Who does this work? cout << t[1].t[0].t[1] << t[0].t[1].t[0]; return 0; } これはコンパイルして正常に動作します。それは出力を与えます34 初期化の構文は次のようになるはずです。 str t[2] = { { {0, 2},{4, …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.