Ian*_*anM 3 c++ visual-c++ c++11 c++03 c++14
我一直在研究"新的"C++标准(C++ 11和C++ 14)的一些特性,这让我想到了一些东西.我目前正在为我的项目使用VC++ 2008编译器(出于各种原因),这意味着我可以访问的最新标准是C++ 03和TR1.TR1有一些不错的东西,但C++ 11和C++ 14中的功能很不错.
我的问题是:我是否有任何方法可以使用较新的编译器(比如MSVC2012或2013)使用较新的C++ 11和C++ 14功能构建库或DLL,然后将其链接到我的正在运行'08编译器的项目?
我能想到的唯一不起作用的是我必须在我的'08编译器项目包含的头中拥有C++ 11或C++ 14特性的任何地方.但是,只要所有"新"都隐藏在我的界面后面,这不应该起作用吗?
是的,但它会变得丑陋..因为ABI不兼容,你必须归结为" extern "C" {}"ABIness.
这意味着你根本无法传递C++对象......就像我说的那样痛苦.它还意味着它必须是一个DLL,因为您将无法在静态库中与另一个ABI链接.
如果它值得在C API中包装一个DLL只是为了使用一些新功能,那么由我决定,我建议只升级整个项目.
我差点忘了,你可能也无法链接导入库,所以你必须有一些使用的代码LoadLibrary,GetProcAddress并且FreeLibrary(我提到这是丑陋/痛苦吗?).
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |