タグ

2015年11月30日のブックマーク (3件)

  • C++でメンバ関数をコールバックする - code snippets

    C++11以前 C++11がなかったころ,functionalヘッダのmem_fun_tとmem_fun1_tを使う方法があった。 mem_fun_t…引数のないメンバ関数 mem_fun1_t…引数が1つのメンバ関数 が可能だった。つまり、引数が2個以上のメンバ関数は、面倒くさい手続きをしない限りできないということ。 たとえば、引数を1つの構造体にまとめるとか。 解決策としてかつてはboost::mem_fnが使われていた。 現在はC++11の標準機能でmem_fnがあるので必要ない。 OpenGLのコールバック関数としてメンバ関数を登録できる?? 試みたけど、できなかった でも、GLFWを使えば、ウィンドウに自分の好きなポインタを入れておくことができるので、 OpenGLとオブジェクト指向の両立が可能です。

  • わかりにくい関数ポインタを返す関数 - Gobble up pudding

    関数ポインタって変な文法ですよねってお話です。 もちろんポインタの文法もいろいろツッコミどころはあるのですが (このせいでポインタよくわからんな人が続出)。 例えば次の宣言はぱっと見すぐにわかる人はC言語マスターです。 void (*func(const char *str)) (); これはvoidを返すのではなく、 void (*)()という関数ポインタを返す、 funcという名前のconst char *strを引数にとる関数です(;'∀') (void (*)()) func(const char *str); のような書き方が許されていれば誰も混乱しないのに…… コードを書いてみます。 gccでコンパイルしてみました(VC++だともっとincludeしないとダメかも) #include <stdio.h> void ps1() { puts("banana"); } void p

    わかりにくい関数ポインタを返す関数 - Gobble up pudding
  • 汎用的なコードの依存関係の抽出ツール rexdep を作りました! ― 正規表現で依存関係を大雑把に抽出しよう! - プログラムモグモグ

    あらすじ ソフトウェアの中の依存関係について 正規表現で抽出できることとその限界 コードの依存関係を抽出するツール rexdep を作りました ソフトウェアの構造を概観するには あなたは、大きなソフトウェアを目にした時、何をしますか? ファイルが何十、何百もある時、どこから読みますか? ソフトウェアが巨大になると、そのコードの構造を把握するのは難しくなります。 特にプロジェクトに入りたての人にとって巨大なコードベースを一目で理解することは難しく、細かなタスクをこなしていく中で徐々に「どこに何が書いてあるか」を理解していくしかありません。 ソフトウェアによってはモデルとコントローラ、データベースとビューと言った具合にコードが分かれており、これくらいの分類はディレクトリ名を見れば理解できるかもしれません。 しかしそのようなざっくりとしたコードの分類が分かったところで、ソフトウェアの構造を理解し

    汎用的なコードの依存関係の抽出ツール rexdep を作りました! ― 正規表現で依存関係を大雑把に抽出しよう! - プログラムモグモグ