Fel*_*lix 14 c++ binary-compatibility noexcept
简单的问题:如果改变这个:
void someMethod();
Run Code Online (Sandbox Code Playgroud)
至
void someMethod() noexcept;
Run Code Online (Sandbox Code Playgroud)
它会破坏二进制兼容性,还是方法签名保持不变?
方法签名保持不变吗?
是的。https://en.cppreference.com/w/cpp/language/noexcept_spec:
仅异常规范不同的函数不能重载(就像返回类型一样,异常规范是函数类型的一部分,但不是函数签名的一部分)(自 C++17 起)。
它会破坏二进制兼容性吗?
可能不是,但标准并不能保证任何东西(AFAIK)。