prog.cpp: In constructor ‘C::C()’:
prog.cpp:19:55: error: invalid use of non-static member function ‘double C::func(double)’
C() : m_func_taker(std::function<double(double)>(func) ) {}
^
prog.cpp:15:9: note: declared here
double func(double in) {
^~~~