首页 > 解决方案 > 像std::is_pointer和std::is_integral,如何实现std::is_cstring_pointer?

问题描述

std::is_pointerstd::is_integral如何实现std::is_cstring_pointer

我想检查指针是否是ac类型的字符串指针,有可能吗?

如何实现这个目标?

标签: c++c++11typetraits

解决方案


组合现有的类型特征相当简单:

template <class T>
struct is_char_ptr
    : std::integral_constant<bool,
        std::is_pointer_v<T>
        && std::is_same_v<char,
          typename std::remove_cv_t<std::remove_pointer_t<T>>>>
{};

请注意,指向 char 的指针可能指向以空字符结尾的字符串,也可能不指向。是否不影响类型。


推荐阅读