2008-02-11から1日間の記事一覧

polymorphic lambda があるとうれしいというのは

Boost.Lambda 使った以下のようなコードが map<string, int> m; map<string, int>::const_iterator ans = find_if(m.begin(), m.end(), lambda::_1.second == 42); こう,なんていうか,直感的な意図通り素直に通ってくれたらうれしいよねー,っていうのと大体同じ. (上のコードはもち</string,></string,>…

local class の linkage 変えようって話あったなぁ

lambda 周りの話の補助的な話として local class の linkage 変えようって話はあったにゃー. (lambda の話でどうして local class の linkage の話が出てくるのか即座に理解できる人は,多分,現在の C++ の local class の linkage (とテンプレートの型パ…

lambda で environment と polymorphic lambda の話って今どうなってんすか?

C++0x の lambda expression の話になるとき, syntax みたいなどうでも良い話 (いやまあぜんぜん良くないんですけれど!) ばかりが話題にされて,もっとこう重要なことに関する議論ってなかなか話題として盛り上がってこないにゃーといつも思うんですけれど…

move のみ可能で copy できないクラスかどうかを判定できない

move のみ可能で copy できないクラスが与えられたときに,それを判定する方法がないけどどうしたもんかにぇ? C++0x の std::is_convertible がまともに実装されないとどうしようもないという結論なんだけれども……. copy constructor はいかなる場合でも宣…

tuple を可変長多重継承で実装

tuple を可変長多重継承で実装する方法,つまり template<class... Args> class tuple : private /*ここで Args を tuple_elem<0, Args0>, tuple_elem<1, Args1>, ... のような形で展開したい */ { // ... }; 上記に相当する実装方法がないか1週間ぐらい考えてたけれど,さ</class...>…