我正在使用g++ 4.4在Linux上编译一个共享库。我希望在库中使用一些C++11特性,但不能更新编译器版本或要求用户为我的库使用特殊编译器开关。
我有两个问题,但很难找到确定的答案。 1. 如果我使用-std=c++0x或-std=g++0x编译共享库,假设我的头文件中没有c++0x功能,那么我是否保证使用我的库的程序不需要这些开关?看起来是可以的,但我不想以后遇到微妙的问题。 2. g++ 4.4的C++11标准库非常不完整。由于许多标准库只是头文件,并且gnu的头文件通常充满了版本ifdefs,因此我认为可能有一种方法可以在libstdc++中使用至少更高版本的头文件。尽管不能使用不同的.so进行操作。我相信我可以将其组合在一起,但是否可能正确地做到这一点?
谢谢。
我有两个问题,但很难找到确定的答案。 1. 如果我使用-std=c++0x或-std=g++0x编译共享库,假设我的头文件中没有c++0x功能,那么我是否保证使用我的库的程序不需要这些开关?看起来是可以的,但我不想以后遇到微妙的问题。 2. g++ 4.4的C++11标准库非常不完整。由于许多标准库只是头文件,并且gnu的头文件通常充满了版本ifdefs,因此我认为可能有一种方法可以在libstdc++中使用至少更高版本的头文件。尽管不能使用不同的.so进行操作。我相信我可以将其组合在一起,但是否可能正确地做到这一点?
谢谢。