簡體   English   中英

除了noexcept之外的C ++ ISO noexcept

[英]C++ ISO noexcept of noexcept

C ++標准中,有以下定義:

template <class T, size_t N> void swap(T (&a)[N], T (&b)[N])
      noexcept(noexcept(swap(*a, *b)));

noexcept(noexcept(swap(*a, *b)))什么作用?

在函數聲明中使用noexcept(x) 說明符意味着當且僅當x求值為true ,該函數才是非拋出的。

noexcept(y)也可以用作操作者 ,評估到true如果y是非投擲表達,並false如果y可以潛在地拋出。

組合,這意味着void foo() noexcept(noexcept(y)); 意思是:當y不投擲時, foo是非投擲的。

在問題的情況下,當且僅當交換數組的各個成員是非拋出時,才聲明數組的函數模板swap是非拋出的,這是有意義的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM