400
Post/Edit Page
某システムのクラスを設計し終えて一息ついていたら、基底クラスが別のコンパイラでエラーを吐くと警告が来た。試してみるとたしかにビルドが通らない。原因を調査してみたら、クラステンプレートの関数宣言に(void)が書かれていて、これがmay not have valueだと怒られている。なんてこった。▼その昔、引数を取らない関数宣言を()でなく(void)と書くのは、関数の呼び出しと宣言を検索時に区別できるからだと教わった。当時はもっともだと思った。しかし、最近のコンパイラは、この書式をエラーと見なすよう変わってきている。今回はまだ通常の(void)関数宣言は許されるコンパイラだが、該当箇所がかなり複雑なクラステンプレートだったので、たまたま(void)が解釈できない状態になってしまったのだろう。▼見やすさや検索しやすさのために冗長な装飾句を書くべきでないと言われればごもっともである。これを機に直近のコードからは(void)を削除した。さらば。
pass:
Draft