Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions lib/checkclass.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -351,14 +351,11 @@ void CheckClassImpl::constructors()
const bool cpp14OrLater = mSettings.standards.cpp >= Standards::CPP14;
for (Usage& usage : usageList) {
const Variable& var = *usage.var;
// isReference() is also true for a function pointer that returns a reference
const bool isReferenceMember = var.isReference() && var.nameToken() && Token::Match(var.nameToken()->previous(), "&|&&");

// check for C++11 initializer
if (var.hasDefault()) {
usage.init = true;
hasAnyDefaultInit = true;
} else if (!var.isStatic() && (isReferenceMember || (var.isConst() && !var.isClass()))) {
} else if (!var.isStatic() && (var.isReference() || (var.isConst() && !var.isClass()))) {
// the default constructor is deleted, so all members are initialized by every instance
isDefaultConstructible = false;
} else if (cpp14OrLater && !hasAnySelfInit && isInitialized(usage, FunctionType::eConstructor)) {
Expand Down
Loading