See: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html
And:
http://www.boost.org/doc/libs/1_37_0/doc/html/boost_staticassert.html
For simple cases we can use today:
#include <cassert>
namespace private_assertion_namespace
{
template<bool assertion> struct assertion_class;
template<> struct assertion_class<true>
{
static const bool value = true;
};
}
#define static_assert(x) assert(private_assertion_namespace::assertion_class<(x)>::value);