#include "app.hpp" #include "compat/assert.hpp" #include "compat/borrowed-ptr.inl" namespace floormat { namespace { struct Foo {}; struct Bar : Foo {}; struct Baz {}; } // namespace // NOLINTBEGIN(*-use-anonymous-namespace) template struct detail_borrowed_ptr::control_block_impl; template struct detail_borrowed_ptr::control_block_impl; template struct detail_borrowed_ptr::control_block_impl; template bool operator==(const bptr&, const bptr&) noexcept; template bool operator==(const bptr&, const bptr&) noexcept; template bool operator==(const bptr&, const bptr&) noexcept; template class bptr; template class bptr; template class bptr; template bptr static_pointer_cast(const bptr&) noexcept; template bptr static_pointer_cast(const bptr&) noexcept; template bptr static_pointer_cast(const bptr&) noexcept; template bptr static_pointer_cast(const bptr&) noexcept; template bptr static_pointer_cast(const bptr&) noexcept; //template bptr static_pointer_cast(const bptr&) noexcept; // must fail //template bptr static_pointer_cast(const bptr&) noexcept; // must fail //template bptr static_pointer_cast(const bptr&) noexcept; // must fail // NOLINTEND(*-use-anonymous-namespace) namespace { void test1() { } } // namespace void test_app::test_bptr() { test1(); } } // namespace floormat