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);
    };

  • 相关阅读:
    查看进程的pid和ppid
    多进程《二》开启进程的两种方式
    多进程《一》进程理论
    并发编程《二》操作系统介绍2
    并发编程《一》操作系统介绍1
    Google浏览器历史版和下载地址
    python爬取淘宝排名
    字符编码
    hashlib
    离散数学
  • 原文地址:https://www.cnblogs.com/wenlove/p/3087826.html
Copyright © 2011-2022 走看看