我是C++的初学者,我正在学习一些C++11特性。我注意到的一件事是,在Visual C++ stdlib的某些部分,作者使用了_NOEXCEPT宏而不是noexcept关键字。盘旋在宏上的是#define _NOEXCEPTnoexcept,所以我有点搞不懂它的意义。两者有什么区别,我应该选择一个而不是另一个吗?
在C++ Primer On noexcept异常规范中,可以说指向可能隐式抛出的函数的指针(定义为无异常规范,例如:void(*p)();)或显式(void(*p)() noexcept(false)(true); pFn3 = func2; // Error on C++ 17 and above.pFn4 = func1;
= (noexcept(std::declval< A >().~A()) && noexcept(std::declval< B >().~B())) > // disable if A or B is not destructible { ^
1 error generated.这一限制在C++<