From 3575d367a4aafa1810feab9ba1effbad11a57702 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 18 Jul 2018 00:25:08 -0400 Subject: [PATCH] telemetry: Default copy/move constructors and assignment operators This provides the equivalent behavior, but without as much boilerplate. While we're at it, explicitly default the move constructor, since we have a move-assignment operator defined. --- src/common/telemetry.h | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/common/telemetry.h b/src/common/telemetry.h index 7a09df0a7f..2c945443b8 100644 --- a/src/common/telemetry.h +++ b/src/common/telemetry.h @@ -58,21 +58,11 @@ public: Field(FieldType type, std::string name, T&& value) : name(std::move(name)), type(type), value(std::move(value)) {} - Field(const Field& other) : Field(other.type, other.name, other.value) {} + Field(const Field&) = default; + Field& operator=(const Field&) = default; - Field& operator=(const Field& other) { - type = other.type; - name = other.name; - value = other.value; - return *this; - } - - Field& operator=(Field&& other) { - type = other.type; - name = std::move(other.name); - value = std::move(other.value); - return *this; - } + Field(Field&&) = default; + Field& operator=(Field&& other) = default; void Accept(VisitorInterface& visitor) const override;