> !final > !pure > !nothrow > etc. As an alternative: how about using a syntax similar to noexcept in C++11? http://en.cppreference.com/w/cpp/language/noexcept That would result in final(true) and final(false). Same for pure etc.