CUB  
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Typedefs
detail Namespace Reference

Typedefs

template<bool Test, class T1 , class T2 >
using conditional_t = typename std::conditional< Test, T1, T2 >::type
 
template<typename Iterator >
using value_t = typename std::iterator_traits< Iterator >::value_type
 
template<typename IteratorT , typename FallbackT >
using non_void_value_t = cub::detail::conditional_t< std::is_same< value_t< IteratorT >, void >::value, FallbackT, value_t< IteratorT >>
 

Typedef Documentation

template<bool Test, class T1 , class T2 >
using detail::conditional_t = typedef typename std::conditional<Test, T1, T2>::type
template<typename Iterator >
using detail::value_t = typedef typename std::iterator_traits<Iterator>::value_type
template<typename IteratorT , typename FallbackT >
using detail::non_void_value_t = typedef cub::detail::conditional_t<std::is_same<value_t<IteratorT>, void>::value, FallbackT, value_t<IteratorT>>

The output value type type = (if IteratorT's value type is void) ? ... then the FallbackT, ... else the IteratorT's value type