8.97 --guiding_decls, --no_guiding_decls

Enables and disables the recognition of guiding declarations for template functions in C++.

A guiding declaration is a function declaration that matches an instance of a function template but has no explicit definition because its definition derives from the function template.

If --no_guiding_decls is combined with --old_specializations, a specialization of a nonmember template function is not recognized. It is treated as a definition of an independent function.

Note:

The option --guiding_decls is provided only as a migration aid for legacy source code that does not conform to the C++ standard. ARM does not recommend its use.

Mode

This option is effective only if the source language is C++.

Default

The default is --no_guiding_decls.

Example

template <class T> void f(T)
{
    ...
}
void f(int);

When regarded as a guiding declaration, f(int) is an instance of the template. Otherwise, it is an independent function so you must supply a definition.

Non-ConfidentialPDF file icon PDF versionARM DUI0472M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.