constメンバ変数

constメンバ変数はコンストラクタの初期化リストで初期化するのだが、その前に処理を書けないのがつらい。
const_castで無理やり書くか、メンバ関数コンストラクタを作ってそこで計算するか。

またMSVCだとC4512コンパイル警告が消えないというのも困る。*1

そもそもconstメンバ変数はコンパイラに最適化してもらえているのかどうか疑問だ。C++FAQLiteとか読むとこれは期待できないとか。あくまで意図しない代入を防ぐためのみに使用したほうがいいらしい。

*1:なぜか解決法に書いてあるように自前でダミーのコピーコンストラクタを書いても消えてくれない