Use static_assert to check types passed to macro
c, c++, g++, static-assert, visual-studio-2010
Solution
I found this to be the cleanest, using @UncleBens suggestion:
#include <type_traits>
static_assert(std::is_same<decltype(retval), bool>::value, "retval must be bool");
Problem
I unfortunately have several macros left over from the original version of my library that employed some pretty crazy C. In particular, I have a series of macros that expect certain types to be passed to them. Is it possible to do something along the lines of: ``` static_assert(decltype(retval) == bool); ``` And how? Are there any clever alternatives? Yes I'm aware macros are bad. I'm aware C++ is not C, etc. Update0 Here is some related code, and the source file. Suggestions are welcome. The original question remains the same.