【发布时间】:2020-01-07 09:48:24
【问题描述】:
我想在我的标题中提供一些使用std::string 的内联便利函数以及使用const char * 的库函数,但我不想包含<string>。如果包含<string>,我想检查#ifdef,如果是这样,请提供便利功能。
问题:对于所有 STL 实现,STL 标头中的标头保护名称是否相同?在 Visual Studio 2010 中,<string> 的标头保护是 _STRING_。
【问题讨论】:
-
通常包含根据顺序有不同的效果会让人感到困惑。
-
在 C++17 中你可以使用
std::string_view。它比std::string要轻得多,并提供std::string或const char*的只读视图。当然,这仅在您不必改变字符串时才有效。 -
该标准仅要求标头在多次包含时能够正常工作。标头保护是最常见的机制,但不是必需的。
标签: c++ stl include-guards