C and C++


LANG.STRUCT.DECL.SAU : Specialization after Use

Summary

A template is fully or partially specialized after it has already been used.

Properties

Class Name Specialization after Use
Significance reliability
Mnemonic LANG.STRUCT.DECL.SAU
Categories
JSF++ JSF++:104 A template specialization shall be declared before its use.
Availability Available for C++ only (not C).
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Specialization after Use"

Example

template <class T>
class List {
};

List<int *> intlist;

template <class T>
class List<T *> { // 'Specialization after Use' warning issued here
};

template <class T>
class Group {
};

template <class T>
class Group<T *> {             // ok: partial specialization occurs before use
};

Group<int *> intgroup;

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.