C++ visit

C++ visit

#include <iostream>

struct Output
{
    int m_i{8};
    template<typename F> void visit(F& f)
    {
      f(this->m_i);
    }
    template<typename F> void visit(F& f) const
    {
      f(this->m_i);
    }
};

typedef int (* Func) (int a);

int fun(int a)
{
   std::cout<< a << std::endl;
   return a;
}

int main()
{
    Output ot;
    Func f = fun;
    ot.visit<Func>(f);

    return 0;
}

  

posted @ 2022-10-25 12:08  牛博张  阅读(44)  评论(0编辑  收藏  举报