我需要提供配置文件,它将描述要包含哪些STL头文件。我发现通常是通过定义很多HAVE_XXX_HEADER宏来完成的。我想知道在宏中显式提供标题名称是否有问题。然后,而不是测试每个变体:包含由宏定义的头文件
#if defined(HAVE_TR1_UNORDERED_MAP_HEADER)
#include <tr1/unordered_map>
#elseif (...)
#endif
你可以简单地有:
#define UNORDERED_MAP_HEADER <tr1/unordered_map>
(...)
#include UNORDERED_MAP_HEADER
它除了带来了灵活性,因为头名字很容易配置文件中编码。
问题是,显示它适用于特定的编译器并不意味着它适用于每个符合标准的编译器。 – GManNickG 2010-08-10 22:56:29