我需要提供配置文件,它將描述要包含哪些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