4
次のコードはコンパイルできます"#define A"が "namespace A {}"を妨害するのはなぜですか?
namespace A{
int i;
}
namespace B{
int i;
}
int main(){ return 0; }
しかし、次のコードはコンパイルできません:名前はなぜ私がA
とB
を定義した後
#define A
#define B
namespace A{
int i;
}
namespace B{
int i;
}
int main(){ return 0; }
エラー情報が
error: redefinition of 'int {anonymous}::i'
です名前空間の名前は匿名になりますか?
使用されているコンパイラ:gcc-4.9.3。
あなたは何もないようにA
と
B
を定義
#define A
#define B
namespace A{
int i;
}
namespace B{
int i;
}
で
これは、すべて大文字の定数があるべきことを正確な理由です避ける – Slava