Now that there is a definitive ISO standard C++, G++ has a specification to adhere to. The C++ language evolved over time, and features that used to be acceptable in previous drafts of the standard, such as the ARM [Annotated C++ Reference Manual], are no longer accepted. In order to allow compilation of C++ written to such drafts, G++ contains some backwards compatibilities. All such backwards compatibility features are liable to disappear in future versions of G++. They should be considered deprecated. See Deprecated Features.
For scope
The behavior is deprecated, only available with -std=c++98
-std=gnu++98 languages and you must use the
-fpermissive option to enable it. The behavior will be
removed.
Friend Injection
Implicit C language
extern "C" {...}
scope to set the language. On such systems, all header files are
implicitly scoped inside a C language scope. Also, an empty prototype
()
is treated as an unspecified number of arguments, rather
than no arguments, as C++ demands.