borg Asked:2024-05-10 16:00:52 +0000 UTC2024-05-10 16:00:52 +0000 UTC 2024-05-10 16:00:52 +0000 UTC 使用低于标准的库安全吗? 772 例如,我的代码是由c++20标准的编译器编译的。同时,它使用一个库(不仅仅是头文件),使用相同的编译器编译,但使用 C++17 标准。安全吗? c++ 2 个回答 Voted Best Answer HolyBlackCat 2024-05-10T18:41:47Z2024-05-10T18:41:47Z 总体来说应该是安全的。 虽然第三方库可以在其标头中编写一些不起作用的内容(通过 检查标准的版本#if __cplusplus == ...,并为不同版本插入不同的代码),但这种情况很少见,应该在手册中以粗体编写。 αλεχολυτ 2024-05-10T17:42:30Z2024-05-10T17:42:30Z 当然,您可以使用以不同语言标准编写的库。此外,您甚至可以使用不同的语言。主要需要保证的是ABI级别的兼容性。那些。应用程序二进制接口。 如果我们谈论的是同一编译器的不同版本,甚至是同一版本的编译器,但使用不同的 C++ 标准编译的代码,那么您需要查看 ABI 兼容性表。例如,对于 MSVC 来说, MSVC 2015 及更高版本具有此类兼容性。您可以在这里阅读有关 gcc 的信息。
总体来说应该是安全的。
虽然第三方库可以在其标头中编写一些不起作用的内容(通过 检查标准的版本
#if __cplusplus == ...,并为不同版本插入不同的代码),但这种情况很少见,应该在手册中以粗体编写。当然,您可以使用以不同语言标准编写的库。此外,您甚至可以使用不同的语言。主要需要保证的是ABI级别的兼容性。那些。应用程序二进制接口。
如果我们谈论的是同一编译器的不同版本,甚至是同一版本的编译器,但使用不同的 C++ 标准编译的代码,那么您需要查看 ABI 兼容性表。例如,对于 MSVC 来说, MSVC 2015 及更高版本具有此类兼容性。您可以在这里阅读有关 gcc 的信息。