前回(VC++のラムダ式とoperator()でのバグ?)の件に対する回避策(Workaround)です。ずばり、this->を付加すれば大丈夫です。

#include <iostream>
 
struct Hoge
{
  void test()
  {
    auto f = [&]{this->operator()();};
    f();
  }
  void operator()()
  {
    std::cout << "hoge" << std::endl;
  }
};
 
int main()
{
  Hoge obj;
  obj.test();
}

スポンサード リンク

この記事のカテゴリ

  • ⇒ Workaround: VC++のラムダ式とoperator()でのバグ?
  • ⇒ Workaround: VC++のラムダ式とoperator()でのバグ?