Search code examples
c++cvisual-studio-2010g++static-assert

Use static_assert to check types passed to macro


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.


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");