## New Features

This reference has new and updated topics:

- See pragma gcc_extensions for GCC improvements
- See pragma c99 for C99 improvements
- C++ improvements include:
  - Forward Declarations of Arrays of Incomplete Type now supported
  - Vendor Independent C++ ABI support for specific compiler target
- C++ template improvements include:
  - Instantiating a Template now supports the explicit instantiation of non-template members
  - Better Template Conformance support for address of template-id rules
  - The pragma defer_defarg_parsing supports deferred parsing of member functions by default
- “Multibyte and Unicode Support”
- “Getting Environmental Variables” provides support for determining host-specific environmental variables
- If you use a function or type that is marked with a GCC style deprecated attribute, a warning message with line number where the statement occurs will appear.

      int old_fn () __attribute__ ((deprecated));

      int (*fn_ptr)() = old_fn;

      foo.cpp:2:  warning: `old_fn' is deprecated (declared at foo.cpp:1)

- New and newly documented #pragmas include:

array_new_delete | inline_max_size | options | warning
asmpoundcomment | inline_max_total_size | pragma_prepdump | warn_any_ptr_int_conv
asmsemicolcomment | instmgr_file | showmessagenumber | warn_hiddenlocals
debuginline | keepcomments | show_error_filestack | warn_illtokenpasting
defer_defarg_parsing | macro_prepdump | space_prepdump | warn_illunionmembers
errno_name | maxerrorcount | srcrelincludes | warn_missingreturn
flat_include | msg_show_lineref | strictheaderchecking | warn_no_explicit_virtual
fullpath_file | msg_show_realref | store_object_files | warn_undefmacro
inline_bottom_up_once | new_mangler | text_encoding | no_conststringconv
inline_max_auto_size | nosyminline | thread_safe_init |

- New and newly documented x86 #pragmas include:

asm_fixup_dllimports | disableopts
disable_stackalloc | emit_local_scopes
fill_stack | line_trace
mmcalls | overlap_locals
sse | sse2
struct_reg_return | ten_byte_long_double
use_cmov | use_fcmov
volatile_asm | x86_processor

- Information in this manual now uses references to the ISO C and C++ standards instead of Ellis and Stroustrup’s The Annotated C++ Reference Manual (ARM) and Kernighan and Richie’s The C Programming Language (K&R).