diff --git a/utils/common/any.hpp b/utils/common/any.hpp index 5f7d6c0a5..e252bb779 100755 --- a/utils/common/any.hpp +++ b/utils/common/any.hpp @@ -29,15 +29,21 @@ namespace anyimpl virtual void move(void* const* src, void** dest) = 0; virtual void* get_value(void** src) = 0; virtual size_t get_size() = 0; + protected: + ~base_any_policy() = default; }; + //inline base_any_policy::~base_any_policy() throw () {} + template struct typed_base_any_policy : base_any_policy { virtual size_t get_size() { return sizeof(T); - } + } + protected: + ~typed_base_any_policy() = default; }; template @@ -63,6 +69,8 @@ namespace anyimpl { return reinterpret_cast(src); } + protected: + ~small_any_policy() = default; }; template @@ -91,6 +99,8 @@ namespace anyimpl { return *src; } + protected: + ~big_any_policy() = default; }; template