Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template< typename base, typename v >
- constexpr bool is_passable_fn( ... ) { static_assert ( sizeof (base) > 0, "Pass to incomplete type." ); return false; }
- template< typename base, typename v >
- constexpr typename std::enable_if< std::is_void< decltype ( next_stage( std::declval< base & >() ).template pass< pass_policy::enable_if >( std::declval< v >() ) ) >::value, bool >::type
- is_passable_fn( int ) { return true; }
- template< typename base, typename v, typename q = void >
- struct is_passable : std::integral_constant< bool, is_passable_fn< base, v >(0) > {};
- template< typename base, typename v >
- struct is_passable< base, v, decltype( next_stage( std::declval< base & >() ).template pass< pass_policy::enable_if >( std::declval< v && >() ) ) > : std::true_type {};
Advertisement
Add Comment
Please, Sign In to add comment