型修飾子の記述位置を変えよう

C++ (とか C) 言語の型修飾子には const,volatile (と restrict) がありまして,それぞれ意訳すると「変化しません」,「最適化しないでね」(そして「違うアドレスです」) になります.これらは型そのものとポインタ型の両方を別々に修飾できる (restrict はポインタ型だけ) ので,const な型を指している非 const なポインタとか,指している先は非 volatile だけどポインタは volatile な変数とか宣言できます.

記述位置を変えようとは,変数を宣言する際に,これら型修飾子を,型の左と右のどちらに記述するか,その位置を変えよう!ということです.私は今まで,型の左側に置いていました.ようするに

void
func(const double foo)
{
  ...
}

こう書いていたんです.それを今度から右置きにして

void
func(double const foo)
{
  ...
}

こう書きます.なぜかというと,ポインタの修飾が確実に * の右側に置かさるからなんですね.これ,今まで見苦しいと思いながらもずっとスルーしてきたんですが,ふとググってみるとスポンサーサイト::スポンサー広告に右に置くべき例付きで解説されているのを見たからです.