すみません、間違えました!>>84のコードはコンパイルエラーにはなりません。
実は人からもらったソースコードをいじってて、引数なしのコンストラクタを hoge obj1();
などとインスタンス化するとよく分からないコンパイルエラーになり、調べてみた次第です。

というわけで、質問を以下のように変更させてください。

「引数なしのコンストラクタを呼んでインスタンス化する際は、 hoge obj1(); などと
()を付けては駄目で、単に hoge obj1; とする」というのは、C++の仕様でしょうか?