static_assert(std::is_same<double, FunctionSignatureParser<decltype(t.add)>::arg<0>::type>::value, "Method 'Temperature::add' does not use an argument of type 'double'");
prog.cpp: In function ‘int main()’:
prog.cpp:23:79: error: invalid use of non-static member function ‘Temperature Temperature::add(double)’
static_assert(std::is_same<double, FunctionSignatureParser<decltype(t.add)>::arg<0>::type>::value, "Method 'Temperature::add' does not use an argument of type 'double'");
^
prog.cpp:6:18: note: declared here
Temperature add(double value) {
^~~
prog.cpp:23:80: error: template argument 1 is invalid
static_assert(std::is_same<double, FunctionSignatureParser<decltype(t.add)>::arg<0>::type>::value, "Method 'Temperature::add' does not use an argument of type 'double'");
^
prog.cpp:23:88: error: template argument 2 is invalid
static_assert(std::is_same<double, FunctionSignatureParser<decltype(t.add)>::arg<0>::type>::value, "Method 'Temperature::add' does not use an argument of type 'double'");
^
prog.cpp:23:96: error: ‘::value’ has not been declared
static_assert(std::is_same<double, FunctionSignatureParser<decltype(t.add)>::arg<0>::type>::value, "Method 'Temperature::add' does not use an argument of type 'double'");
^~