diff options
author | galtsev <galtsev@yandex-team.com> | 2024-08-21 21:16:59 +0300 |
---|---|---|
committer | galtsev <galtsev@yandex-team.com> | 2024-08-21 21:31:23 +0300 |
commit | 3674c77986e1fbda2dfcf9d2d4c1db563cfeaf4c (patch) | |
tree | b885d8ace301f00d8a7f091a37087579b357d729 | |
parent | 6552f0b96dddafa39fb425cdc8df5ac2562a4aa4 (diff) | |
download | ydb-3674c77986e1fbda2dfcf9d2d4c1db563cfeaf4c.tar.gz |
YT-21993: Add forgotten `override` specifiers
b77c55a40214fce1a37af17fb6d9bf7e04805eef
-rw-r--r-- | yt/yt/core/phoenix/type_decl-inl.h | 4 | ||||
-rw-r--r-- | yt/yt/core/phoenix/unittests/phoenix_ut.cpp | 42 |
2 files changed, 44 insertions, 2 deletions
diff --git a/yt/yt/core/phoenix/type_decl-inl.h b/yt/yt/core/phoenix/type_decl-inl.h index 99a583ce1f..7cec2fa547 100644 --- a/yt/yt/core/phoenix/type_decl-inl.h +++ b/yt/yt/core/phoenix/type_decl-inl.h @@ -89,12 +89,12 @@ public: \ return map; \ } \ \ - void Save(TSaveContext& context) const \ + void Save(TSaveContext& context) const saveLoadModifier \ { \ ::NYT::NPhoenix2::NDetail::SaveImpl(this, context); \ } \ \ - void Load(TLoadContext& context) \ + void Load(TLoadContext& context) saveLoadModifier \ { \ ::NYT::NPhoenix2::NDetail::LoadImpl(this, context); \ } diff --git a/yt/yt/core/phoenix/unittests/phoenix_ut.cpp b/yt/yt/core/phoenix/unittests/phoenix_ut.cpp index 2050c3ebed..b93bf8868b 100644 --- a/yt/yt/core/phoenix/unittests/phoenix_ut.cpp +++ b/yt/yt/core/phoenix/unittests/phoenix_ut.cpp @@ -1248,6 +1248,48 @@ TEST(TPhoenixTest, UniquePtr) //////////////////////////////////////////////////////////////////////////////// +namespace NPolymorphicTemplate { + +struct TBase; + +template <class T> +struct TDerived; + +struct TBase + : public IPersistent +{ + virtual void Foo() = 0; + + PHOENIX_DECLARE_POLYMORPHIC_TYPE(TBase, 0x0f07ba7c); +}; + +void TBase::RegisterMetadata(auto&& /*registrar*/) +{ } + +PHOENIX_DEFINE_TYPE(TBase); + +template <class T> +struct TDerived + : public TBase +{ + void Foo() override + { } + + PHOENIX_DECLARE_POLYMORPHIC_TEMPLATE_TYPE(TDerived, 0x8bf17dc9); +}; + +template <class T> +void TDerived<T>::RegisterMetadata(auto&& registrar) +{ + registrar.template BaseType<TBase>(); +} + +PHOENIX_DEFINE_TEMPLATE_TYPE(TDerived, <int>); + +} // namespace NPolymorphicTemplate + +//////////////////////////////////////////////////////////////////////////////// + namespace NPolymorphicRawPtr { struct TBase; |