| 1262 | struct Ownable { |
| 1263 | protected: |
| 1264 | Owned<const T> Own() const noexcept { |
| 1265 | static_assert(std::is_base_of_v<Data, T>, "T must be derived from Data"); |
| 1266 | const T* const that = static_cast<const T*>(this); |
| 1267 | return Owned<const T>( |
| 1268 | Owner(Owner::Own(static_cast<const Data*>(that)->owner_)), that); |
| 1269 | } |
| 1270 | |
| 1271 | Owned<T> Own() noexcept { |
| 1272 | static_assert(std::is_base_of_v<Data, T>, "T must be derived from Data"); |
no test coverage detected