Closed
Description
Affected rules
A12-0-1
Description
Class templates raise false positives even if all special member functions are defined. Identical classes (which are not class templates) do not result in a false-positive result.
Example
template<typename T>
class A12_0_1a { // <= A12-0-1 error here
public:
explicit A12_0_1a(T i) : i_(i) {}
A12_0_1a(const A12_0_1a&) = delete;
A12_0_1a(A12_0_1a&&) = delete;
A12_0_1a& operator=(const A12_0_1a&) = delete;
A12_0_1a& operator=(A12_0_1a&&) = delete;
virtual ~A12_0_1a() = default;
private:
T i_;
};
class A12_0_1b { // <= No A12-0-1 error here
public:
explicit A12_0_1b(int i) : i_(i) {}
A12_0_1b(const A12_0_1b&) = delete;
A12_0_1b(A12_0_1b&&) = delete;
A12_0_1b& operator=(const A12_0_1b&) = delete;
A12_0_1b& operator=(A12_0_1b&&) = delete;
virtual ~A12_0_1b() = default;
private:
int i_;
};