diff --git a/api/include/opentelemetry/trace/default_span.h b/api/include/opentelemetry/trace/default_span.h index 1677a32ea5..00ab55049b 100644 --- a/api/include/opentelemetry/trace/default_span.h +++ b/api/include/opentelemetry/trace/default_span.h @@ -21,6 +21,8 @@ namespace trace class DefaultSpan : public Span { public: + ~DefaultSpan() noexcept override = default; + // Returns an invalid span. static DefaultSpan GetInvalid() { return DefaultSpan(SpanContext::GetInvalid()); } @@ -66,8 +68,21 @@ class DefaultSpan : public Span DefaultSpan(SpanContext span_context) noexcept : span_context_(std::move(span_context)) {} // movable and copiable - DefaultSpan(DefaultSpan &&spn) noexcept : Span(), span_context_(spn.GetContext()) {} - DefaultSpan(const DefaultSpan &spn) noexcept : Span(), span_context_(spn.GetContext()) {} + DefaultSpan(const DefaultSpan &spn) noexcept : span_context_(spn.span_context_) {} + + DefaultSpan &operator=(const DefaultSpan &spn) + { + span_context_ = spn.span_context_; + return *this; + } + + DefaultSpan(DefaultSpan &&spn) noexcept : span_context_(std::move(spn.span_context_)) {} + + DefaultSpan &operator=(DefaultSpan &&spn) noexcept + { + span_context_ = std::move(spn.span_context_); + return *this; + } private: SpanContext span_context_; diff --git a/api/include/opentelemetry/trace/span_context.h b/api/include/opentelemetry/trace/span_context.h index a1948231bd..54ce38c021 100644 --- a/api/include/opentelemetry/trace/span_context.h +++ b/api/include/opentelemetry/trace/span_context.h @@ -51,8 +51,6 @@ class SpanContext final trace_state_(std::move(trace_state)) {} - SpanContext(const SpanContext &ctx) = default; - // @returns whether this context is valid bool IsValid() const noexcept { return trace_id_.IsValid() && span_id_.IsValid(); } @@ -79,8 +77,6 @@ class SpanContext final trace_flags() == that.trace_flags(); } - SpanContext &operator=(const SpanContext &ctx) = default; - bool IsRemote() const noexcept { return is_remote_; } static SpanContext GetInvalid() noexcept { return SpanContext(false, false); } diff --git a/api/include/opentelemetry/trace/span_context_kv_iterable.h b/api/include/opentelemetry/trace/span_context_kv_iterable.h index aed3474272..0cd92bd6ea 100644 --- a/api/include/opentelemetry/trace/span_context_kv_iterable.h +++ b/api/include/opentelemetry/trace/span_context_kv_iterable.h @@ -18,7 +18,12 @@ namespace trace class SpanContextKeyValueIterable { public: - virtual ~SpanContextKeyValueIterable() = default; + SpanContextKeyValueIterable() = default; + virtual ~SpanContextKeyValueIterable() = default; + SpanContextKeyValueIterable(const SpanContextKeyValueIterable &) = default; + SpanContextKeyValueIterable &operator=(const SpanContextKeyValueIterable &) = default; + SpanContextKeyValueIterable(SpanContextKeyValueIterable &&) = default; + SpanContextKeyValueIterable &operator=(SpanContextKeyValueIterable &&) = default; /** * Iterate over SpanContext/key-value pairs diff --git a/api/include/opentelemetry/trace/tracer.h b/api/include/opentelemetry/trace/tracer.h index ab09843526..8ce6d6ed0e 100644 --- a/api/include/opentelemetry/trace/tracer.h +++ b/api/include/opentelemetry/trace/tracer.h @@ -27,7 +27,13 @@ namespace trace class Tracer { public: - virtual ~Tracer() = default; + Tracer() = default; + virtual ~Tracer() = default; + Tracer(const Tracer &) = default; + Tracer &operator=(const Tracer &) = default; + Tracer(Tracer &&) = default; + Tracer &operator=(Tracer &&) = default; + /** * Starts a span. * diff --git a/api/include/opentelemetry/trace/tracer_provider.h b/api/include/opentelemetry/trace/tracer_provider.h index 059298d395..222b77f6bd 100644 --- a/api/include/opentelemetry/trace/tracer_provider.h +++ b/api/include/opentelemetry/trace/tracer_provider.h @@ -21,7 +21,12 @@ class Tracer; class OPENTELEMETRY_EXPORT TracerProvider { public: - virtual ~TracerProvider() = default; + TracerProvider() = default; + virtual ~TracerProvider() = default; + TracerProvider(const TracerProvider &) = default; + TracerProvider &operator=(const TracerProvider &) = default; + TracerProvider(TracerProvider &&) = default; + TracerProvider &operator=(TracerProvider &&) = default; #if OPENTELEMETRY_ABI_VERSION_NO >= 2