次のコードスニペットは、C ++で完全に有効です(少なくともコンパイルされます)。
my_file.cxx:
static const int MY_CONST_ONE = 1;
static const int MY_CONST_TWO = MY_CONST_ONE;
一方、Cでまったく同じコードをコンパイルすると、エラーメッセージ(http://ideone.com/erBkm9)が表示されて失敗します。
my_file.c:2:1: error: initializer element is not constant
my_file.c:
static const int MY_CONST_ONE = 1;
static const int MY_CONST_TWO = MY_CONST_ONE;
理由は何ですか?それはコンパイラ固有のものですか、それとも既知のCとC ++の違いですか?