C++ 论无例外论点
对我来说,C++ 论无例外论点,c++,c++11,c++14,C++,C++11,C++14,对我来说,noexcept的使用是非常清楚的,它是一种现代的优化方法,用于标记具有无抛出异常保证的函数 struct A { A() noexcept; }; 在有效现代c++的第14项中,我计算了以下语法,有条件地称为无例外 template<class T, size_t N> void swap(T (&a)[N], T (&b)[N]) noexcept(noexcept(swap(*a, *b))); 模板 无效掉期(T&a)[N],T&b
noexcept
的使用是非常清楚的,它是一种现代的优化方法,用于标记具有无抛出异常保证的函数
struct A {
A() noexcept;
};
在有效现代c++的第14项中,我计算了以下语法,有条件地称为无例外
template<class T, size_t N>
void swap(T (&a)[N], T (&b)[N]) noexcept(noexcept(swap(*a, *b)));
模板
无效掉期(T&a)[N],T&b[N])无例外(无例外掉期(*a,*b));
我得到它的方式是,noexcept
可以引入一个真值上下文,但是另一个noexcept又怎么能成为一个参数呢
有人能详细说明一下使用noexcept
的语法和语义吗 带有:
template<class T, size_t N>
void swap(T (&a)[N], T (&b)[N]) noexcept(noexcept(swap(*a, *b)));
(1) (2)
模板
无效掉期(T&a)[N],T&b[N])无例外(无例外掉期(*a,*b));
(1) (2)
- (1) 是一个
- (2) 是一个
noexcept
可在两种上下文中使用:
bool
,指示该表达式是否为非抛出表达式bool
常量表达式,该表达式确定函数是否为noexcept
noexcept ( noexcept(swap(*a, *b)))
^^^^^^^^ ^^^^^^^^
specifier operator
因此,运算符返回bool,说明符可以使用它。Thnx J