zoukankan      html  css  js  c++  java
  • boost之is_pointer

    //BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl<T>::value)
    //1.
    template< typename T > struct is_pointer
    : public ::boost::integral_constant<bool,::boost::detail::is_pointer_impl<T>::value>
    {
    public:
    };

    is_pointer<T>::value == ::boost::detail::is_pointer_impl<T>::value
    template< typename T >
    struct is_pointer_impl
    {
    BOOST_STATIC_CONSTANT(bool, value =
    (::boost::type_traits::ice_and<
    ::boost::detail::is_pointer_helper<typename remove_cv<T>::type>::value
    , ::boost::type_traits::ice_not<
    ::boost::is_member_pointer<T>::value
    >::value
    >::value)
    );
    };

    ------------------------------------------------
    template< typename T > struct is_pointer_helper
    {
    BOOST_STATIC_CONSTANT(bool, value = false);
    };
    TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(is_pointer_helper,T*,true)
    展开为
    template< typename T > struct is_pointer_helper<T*>
    {
    BOOST_STATIC_CONSTANT(bool, value = true);
    };
    ------------------------------------------------
    template <bool b>
    struct ice_not
    {
    BOOST_STATIC_CONSTANT(bool, value = true);
    };

    template <>
    struct ice_not<true>
    {
    BOOST_STATIC_CONSTANT(bool, value = false);
    };
    -------------------------------------------------
    template <bool b1, bool b2, bool b3 = true, bool b4 = true, bool b5 = true, bool b6 = true, bool b7 = true>
    struct ice_and;

    template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
    struct ice_and
    {
    BOOST_STATIC_CONSTANT(bool, value = false);
    };

    template <>
    struct ice_and<true, true, true, true, true, true, true>
    {
    BOOST_STATIC_CONSTANT(bool, value = true);
    };

  • 相关阅读:
    adb devices检测不到夜神模拟器
    adb devices检测不到夜神模拟器
    adb devices检测不到夜神模拟器
    epoll里面mmap释疑
    epoll里面mmap释疑
    epoll里面mmap释疑
    epoll里面mmap释疑
    Redis数据迁移的三个方法
    Redis数据迁移的三个方法
    MySQL:由USE DB堵塞故障引发的思考
  • 原文地址:https://www.cnblogs.com/wenlove/p/3087826.html
Copyright © 2011-2022 走看看