prog.cpp: In lambda function:
prog.cpp:11:5: error: invalid declaration of member template in local class
template<typename R, typename S = decltype(declval<R>().FUNCTION)> static true_type Test(R*); \
^
prog.cpp:48:8: note: in expansion of macro 'BAR'
if(BAR(a, test(declval<int>()))) cout << "a yes\n";
^
prog.cpp:12:5: error: invalid declaration of member template in local class
template<typename R> static false_type Test(...); \
^
prog.cpp:48:8: note: in expansion of macro 'BAR'
if(BAR(a, test(declval<int>()))) cout << "a yes\n";
^
prog.cpp: In member function 'main()::<lambda()>::<anonymous struct>::operator bool() const':
prog.cpp:13:45: error: 'Test' was not declared in this scope
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:48:8: note: in expansion of macro 'BAR'
if(BAR(a, test(declval<int>()))) cout << "a yes\n";
^
prog.cpp:13:36: error: decltype evaluates to '<type error>', which is not a class or enumeration type
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:48:8: note: in expansion of macro 'BAR'
if(BAR(a, test(declval<int>()))) cout << "a yes\n";
^
prog.cpp: In lambda function:
prog.cpp:11:5: error: invalid declaration of member template in local class
template<typename R, typename S = decltype(declval<R>().FUNCTION)> static true_type Test(R*); \
^
prog.cpp:49:8: note: in expansion of macro 'BAR'
if(BAR(a, test())) cout << "a yes\n";
^
prog.cpp:12:5: error: invalid declaration of member template in local class
template<typename R> static false_type Test(...); \
^
prog.cpp:49:8: note: in expansion of macro 'BAR'
if(BAR(a, test())) cout << "a yes\n";
^
prog.cpp: In member function 'main()::<lambda()>::<anonymous struct>::operator bool() const':
prog.cpp:13:45: error: 'Test' was not declared in this scope
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:49:8: note: in expansion of macro 'BAR'
if(BAR(a, test())) cout << "a yes\n";
^
prog.cpp:13:36: error: decltype evaluates to '<type error>', which is not a class or enumeration type
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:49:8: note: in expansion of macro 'BAR'
if(BAR(a, test())) cout << "a yes\n";
^
prog.cpp: In lambda function:
prog.cpp:11:5: error: invalid declaration of member template in local class
template<typename R, typename S = decltype(declval<R>().FUNCTION)> static true_type Test(R*); \
^
prog.cpp:50:8: note: in expansion of macro 'BAR'
if(BAR(b, test(declval<int>()))) cout << "b yes\n";
^
prog.cpp:12:5: error: invalid declaration of member template in local class
template<typename R> static false_type Test(...); \
^
prog.cpp:50:8: note: in expansion of macro 'BAR'
if(BAR(b, test(declval<int>()))) cout << "b yes\n";
^
prog.cpp: In member function 'main()::<lambda()>::<anonymous struct>::operator bool() const':
prog.cpp:13:45: error: 'Test' was not declared in this scope
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:50:8: note: in expansion of macro 'BAR'
if(BAR(b, test(declval<int>()))) cout << "b yes\n";
^
prog.cpp:13:36: error: decltype evaluates to '<type error>', which is not a class or enumeration type
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:50:8: note: in expansion of macro 'BAR'
if(BAR(b, test(declval<int>()))) cout << "b yes\n";
^
prog.cpp: In lambda function:
prog.cpp:11:5: error: invalid declaration of member template in local class
template<typename R, typename S = decltype(declval<R>().FUNCTION)> static true_type Test(R*); \
^
prog.cpp:51:8: note: in expansion of macro 'BAR'
if(BAR(b, test())) cout << "b yes\n";
^
prog.cpp:12:5: error: invalid declaration of member template in local class
template<typename R> static false_type Test(...); \
^
prog.cpp:51:8: note: in expansion of macro 'BAR'
if(BAR(b, test())) cout << "b yes\n";
^
prog.cpp: In member function 'main()::<lambda()>::<anonymous struct>::operator bool() const':
prog.cpp:13:45: error: 'Test' was not declared in this scope
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:51:8: note: in expansion of macro 'BAR'
if(BAR(b, test())) cout << "b yes\n";
^
prog.cpp:13:36: error: decltype evaluates to '<type error>', which is not a class or enumeration type
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:51:8: note: in expansion of macro 'BAR'
if(BAR(b, test())) cout << "b yes\n";
^
prog.cpp: In lambda function:
prog.cpp:11:5: error: invalid declaration of member template in local class
template<typename R, typename S = decltype(declval<R>().FUNCTION)> static true_type Test(R*); \
^
prog.cpp:52:8: note: in expansion of macro 'BAR'
if(BAR(c, test(declval<int>()))) cout << "c yes\n";
^
prog.cpp:12:5: error: invalid declaration of member template in local class
template<typename R> static false_type Test(...); \
^
prog.cpp:52:8: note: in expansion of macro 'BAR'
if(BAR(c, test(declval<int>()))) cout << "c yes\n";
^
prog.cpp: In member function 'main()::<lambda()>::<anonymous struct>::operator bool() const':
prog.cpp:13:45: error: 'Test' was not declared in this scope
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:52:8: note: in expansion of macro 'BAR'
if(BAR(c, test(declval<int>()))) cout << "c yes\n";
^
prog.cpp:13:36: error: decltype evaluates to '<type error>', which is not a class or enumeration type
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:52:8: note: in expansion of macro 'BAR'
if(BAR(c, test(declval<int>()))) cout << "c yes\n";
^
prog.cpp: In lambda function:
prog.cpp:11:5: error: invalid declaration of member template in local class
template<typename R, typename S = decltype(declval<R>().FUNCTION)> static true_type Test(R*); \
^
prog.cpp:53:8: note: in expansion of macro 'BAR'
if(BAR(c, test())) cout << "c yes\n";
^
prog.cpp:12:5: error: invalid declaration of member template in local class
template<typename R> static false_type Test(...); \
^
prog.cpp:53:8: note: in expansion of macro 'BAR'
if(BAR(c, test())) cout << "c yes\n";
^
prog.cpp: In member function 'main()::<lambda()>::<anonymous struct>::operator bool() const':
prog.cpp:13:45: error: 'Test' was not declared in this scope
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:53:8: note: in expansion of macro 'BAR'
if(BAR(c, test())) cout << "c yes\n";
^
prog.cpp:13:36: error: decltype evaluates to '<type error>', which is not a class or enumeration type
operator bool() const { return decltype(Test<CLASS>(0))::value; } } result; \
^
prog.cpp:53:8: note: in expansion of macro 'BAR'
if(BAR(c, test())) cout << "c yes\n";
^