爺感:なんだか作法がわからん
int foo(const int x) { // ... }
のconstってなんだ?
int foo(const int x) { x++; return x; }
だと、エラーになる。
int foo(const int x) { int y = x; y++; return y; }
とすればいい。
だけど、何がうれしい? 何の意思表示だ?? 別にconstいらんじゃねーの、と思うのだが。
とある所に書いてあったが:
関数に参照を渡して書き換えることは非推奨です。 引数で渡した変数を書き換えたい場合にはポインタを使います。 ポインタの場合、呼び出し側で明示的にアドレスを取っているため、書き換えの意図が明白です。
えええー? 参照を渡すのは書き換えるためだと思うのだがなー。書き換えない意図こそconstで示すべきじゃないの。ポインター経由で書き変えるのは構文的に面倒くさい、参照のメリットってその面倒くさいを軽減してくれることだと思うが。