// RUN: %check_clang_tidy %s cert-oop11-cpp %t -- -- -std=c++11 | |
struct B { | |
B(B&&) noexcept = default; | |
B(const B &) = default; | |
B& operator=(const B&) = default; | |
~B() {} | |
}; | |
struct D { | |
B b; | |
// CHECK-MESSAGES: :[[@LINE+1]]:14: warning: move constructor initializes class member by calling a copy constructor [cert-oop11-cpp] | |
D(D &&d) : b(d.b) {} | |
// This should not produce a diagnostic because it is not covered under | |
// the CERT guideline for OOP11-CPP. However, this will produce a diagnostic | |
// under performance-move-constructor-init. | |
D(B b) : b(b) {} | |
}; |