2009-07-22 (水)
なんだかオフィスが静かだな…と思っていたら24時だった.帰る.そもそも今日って何時に出社したんだろう.
*Seeing this instead of the website you expected?
英語表記だとどうなっているのかが気になって調べる.そのままですね.ただ,もっと良い日本語はあったと思うのです.
*名前の衝突
同じ名前空間にsplit関数があるのにsplitクラスを作ろうとして怒られた.関数名と同名のクラスを定義しても怒らないで欲しい.クラスもコンストラクタの型でオーバーロードして欲しい.
どうせ一時オブジェクトとしてしか生成されないクラスだったので,クラス名を変更して,元のクラス名と同名の関数を作ってコンストラクタ代わりに使えば,外から見れば何も問題ない.関数ならオーバーロードで同名のものがあっても大丈夫.
簡単に書くとこんなコード.split()関数は別のところにある.
class _split { public: std::string sep; _split(const std::string &s):sep(s){} }; std::vector<std::string> operator *(const std::string &s,_split &sp) { return split(sp.sep,s); } inline _split split(const std::string &s) { return _split(s); }
速度的な問題は気にしてない.
乗算演算子を関数の適用とみなすという怪しげなプログラミングスタイルが最近の個人的な流行.