ISO C++17标准不允许使用动态异常说明符throw
。
在C++11中,使用throw()
作为函数声明的一部分,表示该函数不会抛出任何异常。然而,在C++17中,使用这种方法被废弃了,而且使用throw
作为异常说明符也不再被允许。
为了解决这个问题,您需要更新代码以使用C++17标准中的新异常说明符。C++17中使用noexcept
来声明一个函数不会抛出异常,而使用throw
则不再被允许。
例如,如果您有一个函数声明如下:
void myFunction() throw(int);
您需要将其更新为:
void myFunction() noexcept(false);
这表示myFunction
函数可能会抛出异常。如果您确定该函数不会抛出任何异常,您可以将其更新为:
void myFunction() noexcept;
这表示myFunction
函数不会抛出任何异常。
如果您正在使用旧的C++代码库,可能会发现很多函数仍然使用throw()
语法。在这种情况下,如果考虑到,既要不影响在低版本编译器上编译,还要在c++17的编译器上编译