我目前正在編寫一個C++庫,它將用於GCC for linux和Sun CC for Solaris的編譯。爲了提高性能,我創建了一些基於編譯器選擇不同頭文件的類; GCC使用C++ 0x或TR1或使用niether和Sun CC RogueWave或STLPort。我sturggling制定的#ifdef'ing的類型定義的最佳手段,例如:基於宏的C++頭文件選擇
namespace project {
#if defined(__GNUG__)
#if defined(HAVE_CXXOX)
#include <unorderd_map>
typedef srd::unordered_map map;
#elif defined(HAVE_TR1)
#include <tr1/unordered_map>
typedef std::tr1::unordered_map map;
#else
#include <map>
typedef std::map map;
#endif
#elif defined(__SUNPROC_CC)
#include <map>
typedef std::map map;
#endif
} //namespaces
而你的問題是? – robert 2010-12-22 14:26:17
@robert我認爲他的意思是這是做到這一點的最佳方式。 – 2010-12-22 14:29:31