@assert directive

The @assert(x) directive macro expands x then evaluates it as an expression that must be implicit convertible to bool. If false then the xcpp preprocessor aborts with an error message on the command line. The @assert(x) directive is stripped from the generated output. i.e. it macro expands into nothing.