diff --git a/third_party/opentelemetry-cpp/api/include/opentelemetry/context/context_value.h b/third_party/opentelemetry-cpp/api/include/opentelemetry/context/context_value.h index 27bd40fb057a..655effe0a1da 100644 --- a/third_party/opentelemetry-cpp/api/include/opentelemetry/context/context_value.h +++ b/third_party/opentelemetry-cpp/api/include/opentelemetry/context/context_value.h @@ -10,11 +10,6 @@ #include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE -namespace baggage -{ -class Baggage; -} // namespace baggage - namespace trace { class Span; @@ -29,7 +24,6 @@ using ContextValue = nostd::variant, - nostd::shared_ptr, - nostd::shared_ptr>; + nostd::shared_ptr>; } // namespace context OPENTELEMETRY_END_NAMESPACE diff --git a/third_party/opentelemetry-cpp/api/include/opentelemetry/std/variant.h b/third_party/opentelemetry-cpp/api/include/opentelemetry/std/variant.h index 58bc510c5f62..c665c7945f4f 100644 --- a/third_party/opentelemetry-cpp/api/include/opentelemetry/std/variant.h +++ b/third_party/opentelemetry-cpp/api/include/opentelemetry/std/variant.h @@ -220,9 +220,13 @@ inline constexpr bool holds_alternative(const variant &v) noexcept return v.index() == I; } -template -inline constexpr bool holds_alternative(const variant &v) noexcept +template typename U, typename... Ts> +inline constexpr bool holds_alternative(const U &v) noexcept { + // Clang 18.1.7 on Ubuntu 24.04 does not disambiguate between this + // and std::holds_alternative if argument type is std::variant + static_assert(std::is_same_v, std::variant>, + "Unsupported argument type"); return std::holds_alternative(v); }