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

  • 相关阅读:
    linq to sql的性能和reader相比只是差一点点吗
    Win11删除右键菜单open in windows Terminal
    jdk1.8
    mvcc read view
    javascript 跨域双向通信方案,通过postMessage和window.name实现
    [原创]如何加载动态库、获取方法委托、卸载动态库
    awseks创建与使用
    aiops 调研
    consul调研
    机器学习调研
  • 原文地址:https://www.cnblogs.com/wenlove/p/3087826.html
Copyright © 2020-2023  润新知