2008-01-01から1年間の記事一覧
以下は、c でも c++ でも同じ。 X(x) になってるところは全て警告orエラーになる。 void foo(void*x){} #define C const #define X(x) /* x */ int main() { int * * p000; int * * C p001; int * C * p010; int * C * C p011; int C * * p100; int C * * C …
ある目的で, こんなテストプログラムを書いてみた. #include <iostream> #include <vector> struct X { std::vector<X*> children; X () { std::cout << "+[" << this << "]\n"; } ~X () { for( size_t i = 0; i < children.size(); ++i ){ if( children[i] ){ delete children[i];</x*></vector></iostream>…
下のような書き方で, 途中に出てくる template って何でしょうか? template<T,S> struct hoge { typedef typename foo<S>::bar Bar; typedef typename Bar::template xxx<T,S>::yyy zzz; }; 正解は, 以下のような文脈でテンプレートクラス(構造体)を参照するためのキーワ</t,s></s></t,s>…
C++ (や Java その他の言語)において, メンバ変数や関数のアクセスに this->をつけるべきか否か, という疑問があり, 調べてみた.this をつけるべきかどうかについてはコーディング規約や好みの問題で議論されている(た). が, 何か決定的な違いがあったような…
sh, bash, csh 等のシェルで $ echo ${hoge:-$foo}とやると, 変数 hoge が空でなければ hoge の値が表示され, 変数 hoge が空であれば, $foo が出力される. 変数=${名前:-値} は if [ $変数 ]; then 変数 = ${名前} else 変数 = 値 fi と等価.≪参考≫プログラ…
qsort と STL の sort では STL の方が速いよ、という事を以下の記事で読んで知ってました。たしかに整数の配列(正確には vector か)に対しては STL が速いのですが、文字列のソーティングに関しては事情が異なるようです。C の qsort と STL の sort の速…
multikey-quicksort のチューニングはしばらく放置かな。
Windows において、URL スキームとアプリケーションを関連付ける方法と、新しい URL スキームを追加する方法についてかきます。Windows の規定の動作では、「http://〜」 というリンクをクリックすると、IE や Firefox 等の Web ブラウザでその URL が開かれ…
数値クラスを新しく定義し、演算子 (e.g., 加算) を定義するときの注意点について。 どうも、一時オブジェクト周りの最適化 (RVOとか) が想定していた通りには効いていない事に気づいたので、メモ。 #include <iostream> #define PP(x) do{std::cout<</iostream>
プログラミング関連のメモなどをほそぼそと書きとめていきます。すき:テンプレート、包含きらい:継承
さらに分かったこと 戻り値が「const MyInt&」でなく、「MyInt」であってRVOが効く場合もある(というか、後者がふつうだと思うのだが)。たとえば、「return temp += rhs;」を「temp += rhs; return temp;」とするだけでOKだったらしい。これはイカン。わ…
しょぼん。。