このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

続・関数オブジェクト

関数オブジェクト - 檜山正幸のキマイラ飼育記 メモ編

もうひとつ、関数オブジェクトってのがある。operator() を持つオブジェクト。

例を出す。まー、クロージャですね。

#include <stdio.h>

struct CountedHello {
    int counter;
    CountedHello() : counter(0){}
    void operator() (void) {
        counter++;
        printf("Hello (%d)\n", counter);
    }
} hello;
    
int main()
{
    hello();
    hello();
    hello();
    printf("hello's counter = %d\n", hello.counter);
}

ところで、関数オブジェクトをファンクターと言うのは止めて欲しい。