From 25057f99ac871684695175738f9ac31890bb4bba Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 14 Jul 2024 17:01:46 +0200 Subject: w --- compat/borrowed-ptr-cast.hpp | 38 -------------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 compat/borrowed-ptr-cast.hpp (limited to 'compat/borrowed-ptr-cast.hpp') diff --git a/compat/borrowed-ptr-cast.hpp b/compat/borrowed-ptr-cast.hpp deleted file mode 100644 index 18f0a50e..00000000 --- a/compat/borrowed-ptr-cast.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#pragma once -#include "borrowed-ptr-fwd.hpp" -#include "compat/assert.hpp" - -namespace floormat::detail_borrowed_ptr { - -//static_assert(std::is_same_v || std::has_virtual_destructor_v && std::has_virtual_destructor_v); // todo! for simple_bptr - -template -concept StaticCastable = requires(From* from) { - static_cast(from); -}; - -} // namespace floormat::detail_borrowed_ptr - -namespace floormat { - -template -bptr static_pointer_cast(const bptr& p) noexcept -{ - // hack to generate better error message - if constexpr (detail_borrowed_ptr::StaticCastable) - { - if (p.blk && p.blk->_ptr) [[likely]] - return bptr{p, nullptr}; - } - else - { - using detail_borrowed_ptr::StaticCastable; - // concepts can't be forward-declared so use static_assert - static_assert(StaticCastable, - "cannot static_cast, classes must be related by inheritance"); - } - - return bptr{nullptr}; -} - -} // namespace floormat -- cgit v1.2.3