代码之家  ›  专栏  ›  技术社区  ›  Felix

添加noexcept是否会破坏二进制兼容性?

  •  14
  • Felix  · 技术社区  · 6 年前

    简单问题:如果更改此选项:

    void someMethod();
    

    void someMethod() noexcept;
    

    它会破坏二进制兼容性,还是方法签名保持不变?

    1 回复  |  直到 6 年前
        1
  •  4
  •   darune    6 年前

    方法签名是否保持不变?

    对。 https://en.cppreference.com/w/cpp/language/noexcept_spec 以下内容:

    仅在其异常规范中不同的函数不能是 重载(就像返回类型一样,异常规范是 函数类型,但不是函数签名的一部分)(因为 C++ 17)。

    它会打破二进制的兼容性吗?

    可能没有,但标准并不能保证任何东西(afaik)。

    推荐文章