パスワードを忘れた? アカウント作成
1095535 journal
プログラミング

kawa-tの日記: C++で関数内関数 3

日記 by kawa-t

C++では関数内においても、Cの構造体を定義する感覚で、クラスが定義できる。それを利用して、関数オブジェクトを作ると、関数内関数のように使えるらしい。

Boost.Lambdaがやっていることと比べるとたわいもないし、Schemeを使っている(と言うよりは処理系を実装しているだけなんだけど)ので、lambda式には抵抗は無いけど、必要になったところに書けることが重要な場合は、この程度で十分。

必要以上に複雑さを持ち込みたくはないし。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2011年12月23日 9時37分 (#2070692)

    関数内 struct/class の関数って、関数オブジェクトにできないのか、
    コンパイルできない(少なくともgcc では)。例えば、こんなの:
    #include <algorithm>
    #include <vector>
    int evennum(const std::vector<int>& vec) {
        struct even {
            bool operator()(int v) const { return v % 2 == 0; }
        };
        return count_if(vec.begin(), vec.end(), even());
    }
    struct を関数の外に出すとか、C++11 の lambda とか使わないで、
    コンパイルできる方法知らないですか、誰か。

typodupeerror

計算機科学者とは、壊れていないものを修理する人々のことである

読み込み中...