This rule is Obsolete | |
Synopsis: | Avoid multiple definition of overloaded methods/functions in conjunction with the instantiation of a class template |
Language: | C++ |
Severity Level: | 4 |
Category: | Class Interface |
Description: |
If a method/function is overloaded, there may be a conflict if the element type appears explicitly in one of these. After instantiation, there may be two methods/functions that, for example, have the type int as an argument. This is shown in the following code: template <class ET> class Conflict { public: void foo( int a ); void foo( ET a ); // What if ET is an int? }; In cases where there is a risk for multiple definition of methods or functions, this must be carefully documented. |
Literature References: |
Ellemtel Rec. 40 |