2007-12-01から1ヶ月間の記事一覧

タグ付き正規表現

秀丸とかだと \f.+\fでタグ付けして\0,\1...で復元 emacs系のreplace-regexpとかの場合は \(.+\)でタグ付けして\0,\1...で復元忘れそうだからメモっとこう。

コメントではてな記法が使えない様なので日記にて。 ADL namespace srzw { struct Bar { int value_; }; void foo(Bar& bar){} void foo(){} } int main() { srzw::Bar bar; foo(bar); // 省略可能 srzw::foo(); // 省略するとエラー return 0; } わー、本当…

http://d.hatena.ne.jp/uskz/20071207/p2std名前空間にオーバーロードは作成してはいけない、と。 boost::rangeを使うと幸せになれるらしい、と。 template<typename Range, typename F> typename boost::range_iterator<Range>::type remove_if(Range& r, F f){ return remove_if(boost::begin(</range></typename>…

remove_ifのオーバーロード

find_ifやremove_ifはコンテナ全体に対して行う場合が多いので、 beginとendを指定するのは冗長な場合がほとんどなのです。 vector<Test>::iterator End = remove_if(Tests.begin(), Tests.end(), bind(IsSameType, _1, TYPE_A)); Tests.erase(End, Tests.end()); </test>…

BOOST_FOREACH

boost1.34.1から加わったBOOST_FOREACHstd::for_eachよりも自然に記述できて大変便利なのでstdafx.hに #include <boost/foreach.hpp> #define foreach BOOST_FOREACH として愛用中。で、stlのmapをforeachでまわそうとして using namespace std; map<string,int> Map; Map.insert( pair<string,int>("XBO</string,int></string,int></boost/foreach.hpp>…

関数内関数その2

前回触れた関数内関数、引数をとる叙述関数の場合はbind使って 渡す事になるんだけど、ローカルの関数オブジェクトだとVC2005で コンパイルエラーに。ローカルメンバ関数だと通るのでとりあえず 問題はないんだけど、なんでだろう?? #include <stdio.h> #include <vector> #</vector></stdio.h>…

関数内関数

そういえばC++で関数内に関数が定義できたんだった。 STLのアルゴリズムで一度しか使わないような叙述関数を定義するときに便利そう。 ただし関数オブジェクト版はCygwin上のGCC3.4.4でコンパイルエラーになった。 (VC2005では両方OK) #include <stdio.h> #include <vector></vector></stdio.h>…

製作中のゲームについて

こんな感じの不思議のダンジョンライクなゲームを製作してます。 主人公は巫女+獣耳で世界観は和風と見せかけてファンタジー? 来年2月末くらいに一通り遊べるもの(α版?)ができると良いなぁ。 とか思いつつじっくり作っていこうと思ってます。