MSVC源码阅读笔记1 - xtr1common.h(省略部分)

MSVC源码阅读笔记1 - xtr1common.h-CSDN博客

以后可能使用到的一些细节,如果使用会链接过来查看。

_Apply

    template <class _Ty>
    struct remove_cv { 
        using type = _Ty;

        template <template <class> class _Fn>
        using _Apply = _Fn<_Ty>; 
    };

    template <class _Ty>
    struct remove_cv<const _Ty> {
        using type = _Ty;

        template <template <class> class _Fn>
        using _Apply = const _Fn<_Ty>;
    };

    template <class _Ty>
    struct remove_cv<volatile _Ty> {
        using type = _Ty;

        template <template <class> class _Fn>
        using _Apply = volatile _Fn<_Ty>;
    };

    template <class _Ty>
    struct remove_cv<const volatile _Ty> {
        using type = _Ty;

        template <template <class> class _Fn>
        using _Apply = const volatile _Fn<_Ty>;
    };

 _Const_thru_ref,_Remove_cvref_t

    template <class _Ty>
    struct remove_reference {
        using type = _Ty;
        using _Const_thru_ref_type = const _Ty;
    };

    template <class _Ty>
    struct remove_reference<_Ty&> {
        using type = _Ty;
        using _Const_thru_ref_type = const _Ty&;
    };

    template <class _Ty>
    struct remove_reference<_Ty&&> {
        using type = _Ty;
        using _Const_thru_ref_type = const _Ty&&;
    };

    template <class _Ty>
    using remove_reference_t = typename remove_reference<_Ty>::type;

    template <class _Ty>
    using _Const_thru_ref = typename remove_reference<_Ty>::_Const_thru_ref_type;

    template <class _Ty>
    using _Remove_cvref_t = remove_cv_t<remove_reference_t<_Ty>>;


    template <class _Ty>
    using remove_cvref_t = _Remove_cvref_t<_Ty>;

 is_constant_evaluated

    [[nodiscard]] constexpr bool is_constant_evaluated() noexcept {
        return __builtin_is_constant_evaluated();
    }

 检测函数调用是否在常量计算的上下文中发生。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值