研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

最短路ソルバ: ライブラリ書き直し3.

2010-02-24 04:57:24 | Weblog
int foo(int flag, void *p) {
  if (flag & is64bit) {
    _foo_i64((int64_t *)p);
  } else {
    _foo_i32((int32_t *)p);
  }
}
もちろん処理が短めなら、以下のように書いている。
int foo(int flag, void *p) {
  if (flag & is64bit) {
    int64_t *p64 = p;
    /*  */
  } else {
    int32_t *p32 = p;
    /*  */
  }
}
としているが、どうにかこれをきれいにしたい。
うんうん唸ってもなかなか良い解決作が出てこない。