12#ifndef SkTLogic_DEFINED
13#define SkTLogic_DEFINED
27 using type = std::conditional_t<std::is_const<S>::value, std::add_const_t<D>,
D>;
32 using type = std::conditional_t<std::is_volatile<S>::value, std::add_volatile_t<D>,
D>;
36template <
typename D,
typename S>
struct copy_cv {
53template <
typename Container>
54constexpr int SkCount(
const Container& c) {
return SkTo<int>(std::size(c)); }
constexpr int SkCount(const Container &c)
typename same_cv< D, S >::type same_cv_t
typename copy_volatile< D, S >::type copy_volatile_t
typename same_volatile< D, S >::type same_volatile_t
typename same_const< D, S >::type same_const_t
typename copy_const< D, S >::type copy_const_t
typename copy_cv< D, S >::type copy_cv_t
std::conditional_t< std::is_const< S >::value, std::add_const_t< D >, D > type
copy_volatile_t< copy_const_t< D, S >, S > type
std::conditional_t< std::is_volatile< S >::value, std::add_volatile_t< D >, D > type