Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <type_traits>
- namespace details {
- template<typename From, typename To>
- using static_cast_expression = std::void_t<decltype(static_cast<To>(std::declval<From>()))>;
- template<typename From, typename To, typename = std::void_t<>>
- struct is_static_castable : std::false_type { };
- template<typename From, typename To>
- struct is_static_castable<From, To, static_cast_expression<From, To>> : std::true_type { };
- }
- template<typename From, typename To>
- struct is_static_castable : details::is_static_castable<From, To>::type { };
- template<typename From, typename To>
- constexpr bool is_static_castable_v = is_static_castable<From, To>::value;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement