13.07.2015 Views

TASKING VX-toolset for ARM User Guide

TASKING VX-toolset for ARM User Guide

TASKING VX-toolset for ARM User Guide

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C++ Language• explicit is accepted to declare non-converting constructors.• The scope of a variable declared in the <strong>for</strong>-init-statement of a <strong>for</strong> loop is the scope of the loop(not the surrounding scope).• Member templates are implemented.• The new specialization syntax (using "template ") is implemented.• Cv-qualifiers are retained on rvalues (in particular, on function return values).• The distinction between trivial and nontrivial constructors has been implemented, as has the distinctionbetween PODs and non-PODs with trivial constructors.• The linkage specification is treated as part of the function type (affecting function overloading andimplicit conversions).• extern inline functions are supported, and the default linkage <strong>for</strong> inline functions is external.• A typedef name may be used in an explicit destructor call.• Placement delete is implemented.• An array allocated via a placement new can be deallocated via delete.• Covariant return types on overriding virtual functions are supported.• enum types are considered to be non-integral types.• Partial specialization of class templates is implemented.• Partial ordering of function templates is implemented.• Function declarations that match a function template are regarded as independent functions, not as"guiding declarations" that are instances of the template.• It is possible to overload operators using functions that take enum types and no class types.• Explicit specification of function template arguments is supported.• Unnamed template parameters are supported.• The new lookup rules <strong>for</strong> member references of the <strong>for</strong>m x.A::B and p->A::B are supported.• The notation :: template (and ->template, etc.) is supported.• In a reference of the <strong>for</strong>m f()->g(), with g a static member function, f() is evaluated. The <strong>ARM</strong>specifies that the left operand is not evaluated in such cases.• enum types can contain values larger than can be contained in an int.• Default arguments of function templates and member functions of class templates are instantiated onlywhen the default argument is used in a call.39

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!