From 5a3587c98868126800b5494d81cb523724c4fa7b Mon Sep 17 00:00:00 2001 From: Antony Polukhin Date: Sat, 26 Aug 2023 21:45:41 +0300 Subject: [PATCH] simplify code --- include/boost/polymorphic_pointer_cast.hpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/include/boost/polymorphic_pointer_cast.hpp b/include/boost/polymorphic_pointer_cast.hpp index 1ab5d23..8dd3972 100644 --- a/include/boost/polymorphic_pointer_cast.hpp +++ b/include/boost/polymorphic_pointer_cast.hpp @@ -19,8 +19,6 @@ # include # include -# include // std::declval - namespace boost { @@ -40,23 +38,17 @@ namespace boost // Contributed by Boris Rasin - namespace detail - { - template - using dynamic_pointer_cast_result = decltype(dynamic_pointer_cast(std::declval())); - } - template - inline detail::dynamic_pointer_cast_result - polymorphic_pointer_downcast (const Source& x) + inline auto polymorphic_pointer_downcast (const Source& x) + -> decltype(static_pointer_cast(x)) { BOOST_ASSERT(dynamic_pointer_cast (x) == x); return static_pointer_cast (x); } template - inline detail::dynamic_pointer_cast_result - polymorphic_pointer_cast (const Source& x) + inline auto polymorphic_pointer_cast (const Source& x) + -> decltype(dynamic_pointer_cast(x)) { auto tmp = dynamic_pointer_cast (x); if ( !tmp ) boost::throw_exception( std::bad_cast() );