我目前正在编写一个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