cppparser: class is not implicitly copyable if it has a move ctor

This commit is contained in:
rdb 2018-06-30 17:34:20 +02:00
parent b2c04a8c7a
commit e191ee84f4

View File

@ -545,6 +545,13 @@ is_copy_constructible(CPPVisibility min_vis) const {
return true; return true;
} }
if (get_move_constructor() != nullptr ||
get_move_assignment_operator() != nullptr) {
// A user-declared move constructor or move assignment operator means that
// the implicitly-declared copy constructor is deleted.
return false;
}
CPPInstance *destructor = get_destructor(); CPPInstance *destructor = get_destructor();
if (destructor != nullptr) { if (destructor != nullptr) {
if (destructor->_vis > min_vis) { if (destructor->_vis > min_vis) {