The "using stuff-from-other-module" directives as implemented in
several other languages
Which C++ doesn't have.
if (expression that evaluates to zero at compile time)
{
non reachable code deleted by the compiler
}
One of the primary uses of #if in C++ code is to control whether or not
code is actually included that would violate a diagnosable rule if the
condition of the #if were false. In C++, as currently defined, the code
which you label as "unreachable" is not required to be "deleted by the
compiler", except insofar as that deletion is covered by the as-if rule.
That rule doesn't allow the compiler to ignore violations of diagnosable
rules. If the "unreachable" code contains such violations, it must still
generate at least one diagnostic message, and it is still permitted to
refuse to translate such code, and in most cases, typical
implementations of C++ will do so.
Your suggested alternative also creates a scope not present in the
corresponding #if; this will often cause problems as a replacement for a
#if. For instance, if the if-condition is true, any identifiers declared
or defined within the if-block will have their scope restricted to that
block. This is incompatible with many uses of #if, including the example
that Eric Sosman gave.