testが呼び出されない場合、このコードは問題なくコンパイルされるため、c++では同じ名前のクラスと関数を作成できると結論付けています。
class test {};
void test() {}
int main() {
test an_instance_of_test;
}
エラーは次のとおりです。
<stdin>: In function 'int main()':
<stdin>:5:8: error: expected ';' before 'an_instance_of_test'
<stdin>:5:27: warning: statement is a reference, not call, to function 'test' [-Waddress]
そして、私はそもそもそのような明確さを作成するべきではないことを知っていますが、それにもかかわらず、これは他の誰かのコードで経験される可能性があり、関数やクラスの定義を変更せずにこれから抜け出す方法があるかどうかを尋ねています。