2008-01-01から1年間の記事一覧

Cheat Sheet (C/C++ const)

c++

以下は、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 …

valgrind

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?

c++

下のような書き方で, 途中に出てくる 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>…

this はつけるべきか

c++

C++ (や Java その他の言語)において, メンバ変数や関数のアクセスに this->をつけるべきか否か, という疑問があり, 調べてみた.this をつけるべきかどうかについてはコーディング規約や好みの問題で議論されている(た). が, 何か決定的な違いがあったような…

Google Char API のテスト

シェルの変数展開

sh, bash, csh 等のシェルで $ echo ${hoge:-$foo}とやると, 変数 hoge が空でなければ hoge の値が表示され, 変数 hoge が空であれば, $foo が出力される. 変数=${名前:-値} は if [ $変数 ]; then 変数 = ${名前} else 変数 = 値 fi と等価.≪参考≫プログラ…

[c++] 文字列のソーティング

qsort と STL の sort では STL の方が速いよ、という事を以下の記事で読んで知ってました。たしかに整数の配列(正確には vector か)に対しては STL が速いのですが、文字列のソーティングに関しては事情が異なるようです。C の qsort と STL の sort の速…

さてと

multikey-quicksort のチューニングはしばらく放置かな。

URL スキームを追加するには

win

Windows において、URL スキームとアプリケーションを関連付ける方法と、新しい URL スキームを追加する方法についてかきます。Windows の規定の動作では、「http://〜」 というリンクをクリックすると、IE や Firefox 等の Web ブラウザでその URL が開かれ…

マイ整数

数値クラスを新しく定義し、演算子 (e.g., 加算) を定義するときの注意点について。 どうも、一時オブジェクト周りの最適化 (RVOとか) が想定していた通りには効いていない事に気づいたので、メモ。 #include <iostream> #define PP(x) do{std::cout<</iostream>

C++日記はじめました

プログラミング関連のメモなどをほそぼそと書きとめていきます。すき:テンプレート、包含きらい:継承

マイ整数(その2)

さらに分かったこと 戻り値が「const MyInt&」でなく、「MyInt」であってRVOが効く場合もある(というか、後者がふつうだと思うのだが)。たとえば、「return temp += rhs;」を「temp += rhs; return temp;」とするだけでOKだったらしい。これはイカン。わ…

かきかけのエントリがとんだ。。

しょぼん。。