在C++标准中,有以下定义:
template <class T, size_t N> void swap(T (&a)[N], T (&b)[N])
noexcept(noexcept(swap(*a, *b)));
Run Code Online (Sandbox Code Playgroud)
怎么noexcept(noexcept(swap(*a, *b)))办?
Rei*_*ica 47
在函数声明中使用noexcept(x) 说明符意味着当且仅当x求值时函数是非抛出的true.
noexcept(y)也可以用作运算符,计算trueif y是非抛出表达式,以及falseif是否y可能抛出.
结合起来,这意味着void foo() noexcept(noexcept(y));:foo非投掷时y非投掷.
在问题的情况下,swap当且仅当交换数组的各个成员是非投掷时,数组的函数模板被声明为非抛出,这是有意义的.
| 归档时间: |
|
| 查看次数: |
1553 次 |
| 最近记录: |