Advertisement

C++新知识(二) STL源码的方法

阅读量:

在STL array源码中存在一个特定的方法,在此我们暂不探究其功能细节,并集中研究位于该方法之前的宏定义

复制代码
 _NODISCARD _CONSTEXPR17 iterator begin() noexcept

    
 		{	// return iterator for beginning of mutable sequence
    
 		return (iterator(_Elems, 0));
    
 		}

_CONSTEXPR17被定义为支持inlined形式的宏,并表明该函数采用inlined方式实现其功能。那么_NODISCARD在本上下文中的作用是什么?这里是否还能添加其他内容呢?

我们打开_NODISCARD的定义看看,代码如下

复制代码
 #if _HAS_NODISCARD

    
 #define _NODISCARD [[nodiscard]]
    
 #define _NODISCARD_PERF
    
 #else /* ^^^ CAN HAZ [[nodiscard]] ^^^ // vvv NO CAN HAZ [[nodiscard]] vvv */
    
 #define _NODISCARD
    
 #define _NODISCARD_PERF
    
 #endif /* _HA

全部评论 (0)

还没有任何评论哟~