假设我有三个编译对象,都是由相同的编译器/版本生成的:
为简单起见,我们假设所有头文件都是用C++ 11编写的,只使用其语义在所有三个标准版本之间没有变化的构造,因此任何相互依赖性都用头包含正确表达,编译器没有反对.
这些对象的组合是什么,链接到单个二进制文件是不安全的?为什么?
编辑:欢迎涵盖主要编译器(例如gcc,clang,vs ++)的答案
如果我有用C++ 03编写的库并将其编译为静态库,那么我可以在C++ 11中使用它吗?也是相反的可能(使用C++ 03的C++ 11静态库).
更新: 我使用的编译器是clang或LLVM