- 528 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 21:13:48.77 ID:FGRVT/X40.net]
- 変数の宣言と関数の宣言の順序がどうでも良いのは自明
メンバ関数の定義がメンバ関数内で使用するメンバ変数の宣言に先行する場合も実験する限り合法 (規格に具体的にどういう文言で規定してあるのかは知らん まあ定義時点で不完全な型やら値やらはテンプレートの定義で頻出するから あんま定義と宣言の順序にこだわらない処理系の作りなのだと納得しておく しかしなぜかテンプレートの引数でない型の定義(または宣言)と使用には厳格な順序を求められる… 次のコードはビルドが通らない class Baz { // struct Bar; // 左のコメントアウトを外したら逝ける void foo(Bar& b); struct Bar { int x, y; } }; 多分Cとの互換性のために仕様がワケワカメになった例
|

|