閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

関数宣言において、値渡しの関数パラメータの const は避けよう

C++ Coding Standards より。

// hoge.h で
void f(int n);

// hoge.cpp で
void f(const int n)
{
  // ... f の実装 ...
}

これは、合法だそうです。関数宣言での const は無視されるとのこと。

関数の引数が値渡しで渡される場合、その引数が const であるかどうかは呼び出し側にとっては関係無い事なので、宣言で省略できるのであれば、省略した方が良いのでしょうね。宣言 (ヘッダファイル) を変更しなくても良いという事はインターフェイスに変更が入らず、他への影響が発生しないのですぐに実践できますね。最近はローカル変数含めて、変更の無い変数にはなるべく const を付与するよう心がけているので、早速取り入れたいと思います。