jot*_*tik 17 c++ exception-handling exception language-lawyer c++11
安东尼·威廉姆斯的书中的C++ Concurrency in Action在4.2.4中保留了一个未来的例外,它可以直接存储异常,而不会抛弃使用std::copy_exception
.但是我似乎无法找到std::copy_exception
定义的标准库头.我在哪里可以找到它?
jot*_*tik 21
TL;博士:std::copy_exception
重命名为std::make_exception_ptr
在<exception>
用于最终C++ 11标准.
委员会认为,由于以下原因,该名称copy_exception
(可能被复制到标准中boost::copy_exception
)具有误导性.
该copy_exception
函数返回一个exception_ptr
参数的副本,就好像
template <class E>
exception_ptr copy_exception(E e) {
try {
throw e;
} catch (...) {
return current_exception();
}
}
Run Code Online (Sandbox Code Playgroud)
当使用exception_ptr
as参数调用时,该函数将返回另一个exception_ptr
指向给exception_ptr
定as参数的副本,而不是指向exception_ptr
参数指向的内容.因为该名称copy_exception
对于这种情况具有误导性,所以该函数被重命名std::make_exception_ptr
为最终的C++ 11标准.有关此问题的详细信息和讨论,请参阅C++标准库缺陷报告1130.
该std::make_exception_ptr
功能定义于<exception>
.
归档时间: |
|
查看次数: |
1133 次 |
最近记录: |