When compiling in pedantic mode, using the #warning directive emits not
only the warning itself but also
`` warning: #warning is a GCC extension``
That is true to form, of course, since the pedantic switch is on. But it
is desirable to switch off this particular pedantic warning. The
explicit
GCC seems to have a non-standard lenient C++ overload resolution that is
not documented (or easy to find in the manual).
The following C++ code compiles with GCC. However, it produces a warning
about an ambiguous overload that apparently is not acceptable by the
standard. Clang and MVSC simply