C言語
GCC拡張のcleanup attribute使えば簡単にscope_exit文を作れそうだな、と思って作ってみた。ネスト関数のプロトタイプ関数に使うautoとか初めて使った。 #include <stdio.h> #define scope_exit() \ auto void on_scope_exit(void *ptr);\ __attribute__((cleanup(on_</stdio.h>…
C言語でデストラクタ及びスマートポインタを実装した人が居るらしい。何というタイミング。GCC拡張のcleanup attributeを使っているので、使い道は少なそう。それと、メモリをスタックからじゃなくてヒープから取得してるのが気になる。[C] Implementing sma…
C++11は良く分からんので、C言語で。参照でもないけど、実装は似たようなもん。デコンストラクタ問題やオーバーロードや演算子オーバーライドが無いので別物だけど、これはこれで使い道ある気がする。moveについては、safe_freeのような趣きがあって良ろしい…
sudo aptitude install coccinelle でインストール。 マッチングには*使えって書かれてるけどハイライトしてくれないで-になるので、以下のようにするしか無さそう。 @@ expression e; @@ - (int) e + ((int) e)ざっと見簡単で非常に良さげ。 型や関数や変数…
gtags (global)より良いらしい。後で試す。
asm ("movb %%bh, %%al\n" : "=a" (rv) : "b" (x)); これのレジスタ依存をやめたい(=qとqにしたい)訳だけどどうすればいいやら。 正解は以下らしい。どのドキュメントに書いてあったんだろうか。 asm ("movb %h1, %b0\n" : "=q" (rv) : "q" (x)); あとインラ…
ちょうど取りかかってたところ、数日前に2chでも話題出てたようだ。そこにあったのが凄すぎたので真似てみた(もとのは0-9までだったので、0-31までにし、0で32を返すようにした)。70338351は総当たりで最初に出たもので、テーブルサイズは最適化していない。…
使えない。もっと賢くなってくれてもいいのに。 って書いたけど、ただのバグな予感。 uncrustifyやastyleというのもあるらしい。 uncrustify良い。凄く良い。 設定が多くて混乱するけど、凄くお勧め。 uncrustifyに重大なバグ見つけた予感。 mod_full_brace_…
はいいんだけど、本当に欲しいのは関数を依存が少ない順に並び替えるもの。 cflow通した結果から簡単に求められるはず。今時間無いので後で書く。 とりあえずコールグラフ。 http://bazaar.launchpad.net/~lovesyao/+junk/tools/files/lovesyao%40hotmail.co…
boost::preprocessor見てそんなふうに思った。エラーとかは不自由そうだけどtemplateが万能ではないことが良くわかる。 それとc++0xは個人的に期待外れになりそうな感じ。 c++0xのwhereってtemplateにprivateを付けられるようにすれば解決す…しないのか。こ…