gpt4 book ai didi

非 C++11 程序中的 C++11 代码/库

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:11 25 4
gpt4 key购买 nike

假设我将 C++11 中的代码(我将使用 Lambdas)编译为“.o”或库“.a”。我有一个程序,其中我将包含以前的库和头文件,我不能用 C++11 编译,但是旧的(C++98)。它会编译并正常工作吗?

最佳答案

如果满足以下条件,它将正常工作:

  1. (公共(public))头文件不使用任何 C++11 特性
  2. ABI 没有改变
    • 就此咨询您的平台/编译器
  3. 没有共同的依赖关系发生变化
    • 根据 Vaughn Cato 链接的 GCC 文档,这包括标准库。任何在使用 C++11 编译时生成不同代码或对象布局并被库和客户端使用的东西都可能是一个问题……即使它没有在接口(interface)本身中使用。

如果第 3 点是您唯一的问题,您可能可以通过编译动态库(取决于平台 a .so,或 .dynlib,或 Adrian 建议的 DLL)来绕过它) 所有依赖项在内部静态链接而不导出。虽然有点毛茸茸。

关于非 C++11 程序中的 C++11 代码/库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com