Skip to content

Commit 69dd6fb

Browse files
committed
[lldb][TypeSystemClang][NFC] Make TemplateParameterInfos copyable
1 parent 5eb7442 commit 69dd6fb

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,10 +342,27 @@ class TypeSystemClang : public TypeSystem {
342342
assert(names.size() == args_in.size());
343343
}
344344

345-
TemplateParameterInfos(TemplateParameterInfos const &) = delete;
346345
TemplateParameterInfos(TemplateParameterInfos &&) = delete;
347346

348-
TemplateParameterInfos &operator=(TemplateParameterInfos const &) = delete;
347+
TemplateParameterInfos(const TemplateParameterInfos &o)
348+
: names(o.names), args(o.args), pack_name(o.pack_name) {
349+
if (o.packed_args)
350+
packed_args = std::make_unique<TemplateParameterInfos>(*o.packed_args);
351+
}
352+
353+
TemplateParameterInfos &operator=(const TemplateParameterInfos &o) {
354+
auto tmp = TemplateParameterInfos(o);
355+
swap(tmp);
356+
return *this;
357+
}
358+
359+
void swap(TemplateParameterInfos &other) noexcept {
360+
std::swap(names, other.names);
361+
std::swap(args, other.args);
362+
std::swap(pack_name, other.pack_name);
363+
std::swap(packed_args, other.packed_args);
364+
}
365+
349366
TemplateParameterInfos &operator=(TemplateParameterInfos &&) = delete;
350367

351368
~TemplateParameterInfos() = default;

0 commit comments

Comments
 (0)