prog.cpp: In static member function ‘static constexpr typename Function::type FunctionManager<Function, N>::Create()’:
prog.cpp:33:28: error: expected primary-expression before ‘;’ token
return &Function::Func<N>;
^
prog.cpp: In instantiation of ‘static constexpr typename Function::type FunctionManager<Function, N>::Create() [with Function = MyFunction; unsigned int N = 6u; typename Function::type = void (*)(const unsigned int&)]’:
prog.cpp:43:106: required from ‘void (* const FunctionManager<MyFunction, 6u>::func_)(const Data&)’
prog.cpp:38:14: required from ‘void FunctionManager<Function, N>::operator()(const Data&) const [with Function = MyFunction; unsigned int N = 6u; Data = unsigned int]’
prog.cpp:49:9: required from here
prog.cpp:33:25: error: address of overloaded function with no contextual type information
return &Function::Func<N>;
^
prog.cpp:34:2: error: body of constexpr function ‘static constexpr typename Function::type FunctionManager<Function, N>::Create() [with Function = MyFunction; unsigned int N = 6u; typename Function::type = void (*)(const unsigned int&)]’ not a return-statement
}
^
prog.cpp: In static member function ‘static constexpr typename Function::type FunctionManager<Function, N>::Create() [with Function = MyFunction; unsigned int N = 6u; typename Function::type = void (*)(const unsigned int&)]’:
prog.cpp:34:2: warning: control reaches end of non-void function [-Wreturn-type]
}
^