diff options
author | babenko <babenko@yandex-team.ru> | 2022-02-10 16:49:19 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:49:19 +0300 |
commit | f31097c96270919a1f49360bdaaa69ea4f3fefab (patch) | |
tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 /library/cpp/yt/misc/variant.h | |
parent | cec37806d8847aa3db53bafc9e251d4aaf325c12 (diff) | |
download | ydb-f31097c96270919a1f49360bdaaa69ea4f3fefab.tar.gz |
Restoring authorship annotation for <babenko@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/yt/misc/variant.h')
-rw-r--r-- | library/cpp/yt/misc/variant.h | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/library/cpp/yt/misc/variant.h b/library/cpp/yt/misc/variant.h index a6b6821e1e5..27c0a2bc086 100644 --- a/library/cpp/yt/misc/variant.h +++ b/library/cpp/yt/misc/variant.h @@ -1,41 +1,41 @@ -#pragma once - -#include <variant> - -namespace NYT { - -//////////////////////////////////////////////////////////////////////////////// - -namespace NDetail { - -template <class T, class... Ts> -struct TIndexOf; - -} // namespace NDetail - -template <class T, class V> -struct TVariantIndex; - -template <class T, class... Ts> -struct TVariantIndex<T, std::variant<Ts...>> - : std::integral_constant<size_t, NDetail::TIndexOf<T, Ts...>::Value> -{ }; - -template <class T, class V> -constexpr size_t VariantIndexV = TVariantIndex<T, V>::value; - -//////////////////////////////////////////////////////////////////////////////// - -class TStringBuilderBase; - -template <class... Ts> -void FormatValue(TStringBuilderBase* builder, const std::variant<Ts...>& variant, TStringBuf spec); - +#pragma once + +#include <variant> + +namespace NYT { + +//////////////////////////////////////////////////////////////////////////////// + +namespace NDetail { + +template <class T, class... Ts> +struct TIndexOf; + +} // namespace NDetail + +template <class T, class V> +struct TVariantIndex; + +template <class T, class... Ts> +struct TVariantIndex<T, std::variant<Ts...>> + : std::integral_constant<size_t, NDetail::TIndexOf<T, Ts...>::Value> +{ }; + +template <class T, class V> +constexpr size_t VariantIndexV = TVariantIndex<T, V>::value; + +//////////////////////////////////////////////////////////////////////////////// + +class TStringBuilderBase; + template <class... Ts> -TString ToString(const std::variant<Ts...>& variant); +void FormatValue(TStringBuilderBase* builder, const std::variant<Ts...>& variant, TStringBuf spec); + +template <class... Ts> +TString ToString(const std::variant<Ts...>& variant); + +//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// - //! A concise way of creating a functor with an overloaded operator(). /*! * Very useful for std::visit-ing variants. For example: @@ -69,8 +69,8 @@ auto Visit(T&& variant, U&&... visitorOverloads) //////////////////////////////////////////////////////////////////////////////// -} // namespace NYT - -#define VARIANT_INL_H_ -#include "variant-inl.h" -#undef VARIANT_INL_H_ +} // namespace NYT + +#define VARIANT_INL_H_ +#include "variant-inl.h" +#undef VARIANT_INL_H_ |