
retardeeの日記: Google C++スタイルガイド 2
これはおもしろいね。
Googleに雇われるような頭の良い人たちもprintfに対するstd::streamの使いにくさを感じていたことに少し安心した。
「C++初心者」たちはprintfを使う人を嗤うが、printf/scanfファミリーにできてstreamクラスにできないことってあるんだよね・・
retardeeさんのトモダチの日記、みんなの日記も見てね。 アナウンス:スラドとOSDNは受け入れ先を募集中です。
これはおもしろいね。
Googleに雇われるような頭の良い人たちもprintfに対するstd::streamの使いにくさを感じていたことに少し安心した。
「C++初心者」たちはprintfを使う人を嗤うが、printf/scanfファミリーにできてstreamクラスにできないことってあるんだよね・・
再利用を想定した部品とそうでない特殊化された部品とをはっきり区別すべき。
後者を作成している時に汎用的なコードを書こうとがんばるのは時間の浪費。
今更だけど、しばらく見なかった間に体制の変更があったのだろうか。
所詮タレコミ掲示板なので文面に多くは期待しないが、巷に溢れるコピペブログよりは何かしらの「専門家」が集まるサイトであってほしいよ。
大規模なソフトウェアのビルドではまず成功しない印象がある。それこそ並列化の恩恵が大きいのだが・・
「並列化しても大丈夫な部分」を判定するアルゴリズムが完璧でないのだろうか。
ポインタは「指し示すもの」だが、リファレンスは「別名」である。
参照するオブジェクトを切り替える目的でリファレンスを使うことはできない。
プログラミングをやりだして間もない頃は、言語仕様上の制約を華麗に(?)回避して目的を達するトリックを思いついて悦に入ったり、そのような他人のコード見て感心したものだ。
しかし今では、機能上の要求からではなく、実装上の都合からそのようなコードを書いてしまうことには、言い知れぬ気持ち悪さを感じる。
子供の頃は、親がプレゼントをくれたり、そこかしこでイベントをやっていたり、夕食がちょっと豪華だったりでわくわくする日だった。
男女が動物的欲望を開放しあう日と知るまでは。
飲み会などに行くと、必ず沈んだ気分で帰ってくることになる。
自分がいかに空っぽで、つまらない人間なのか思い知らされるからだ。
二つのクラスに部分的に同じ処理があって、コピペはしたくないのだが、継承も委譲もしっくりこないんだよなあ・・・
struct Hoge {
int a, b, c;
};
は
Hoge h = { 1, 2, 3 };
というふうに初期化できる。
ところが、
struct Hoge {
Hoge(int a_, int b_, int c_): a(a_), b(b_), c(c_) {}
Hoge() {}
int a, b, c;
};
てな感じにコンストラクタを加えると、上記の昔ながら(?)の初期化がエラーになるようになる。
error: scalar object ‘h’ requires one element in initializer
これはなぜなんだろう。
長年C++を使っているが、まだ知らないことがあるんだな・・
アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家