社員のつぶやき
プロコア本部、本日より営業開始いたします。
C++11では、待望の移譲コンストラクタが入りました。
引数の型が違うコンストラクタを複数記述するときなどに、1つのコンストラクタに集約する機能です。引数値の省略でも一部のコンストラクタはまとめることができますが、引数の型が違う場合は不可能でした。
これまでコンストラクタから同じクラスのコンストラクタを呼び出すことができなかったのです。このため、各コンストラクタの初期化式に各メンバの初期化処理を並べるはめになっていました。これは、メンバの数やコンストラクタの数が多いとメンテナンスがたいへんでした。
積極的に使っていきたいものです。
https://martinfowler.com/bliki/TellDontAsk.html
読んでみて、どういう感想を持ちましたか?
・あたりまえ、いまさら?
でも、世の中、こんなコードがあふれているんですよ。
まあ、私には「setValue(3)」なんてのが良い例とは思えないのですけどね。
ここの説明見ても分からないようなら、さっさと諦めようw
若いときには、第一線を退くとき、この言葉のとおりになっていると思っていた。
周りにはできる奴があふれていて、オレがやることは何もないので、まだ未熟な未経験に近い者を指導していくようになると。現役バリバリの奴らには、そういう負担は負わせられないと。
・セキュアプログラミング・コーディングガイド
「関数プロトタイプ宣言には引数名をつけるな」:マクロが引数名に悪さすることがあるから。
→分かる。
・doxygen
void func(int);
/**
\fn void func(int count)
\param count 数量
*/
→あれ???
どうやら、C++ STLの中には、SmalltalkでいうところのSortedCollectionはないようだ。
不便だぁ。
C++プログラマで、次の2つを使い分けできる人が何人いるだろうか?
auto f( int& i ) { return i; }
decltype(auto) f( int& i ) { return i; }