C++ 社区建议不要使用 using namespace std;
。但是假设您想使用字符串文字,例如 auto s = "dummy"s;
。不使用 using namespace std;
导致编译失败。解决办法是什么?
原文由 E. Vakili 发布,翻译遵循 CC BY-SA 4.0 许可协议
C++ 社区建议不要使用 using namespace std;
。但是假设您想使用字符串文字,例如 auto s = "dummy"s;
。不使用 using namespace std;
导致编译失败。解决办法是什么?
原文由 E. Vakili 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答1.3k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
4 回答840 阅读
1 回答916 阅读
1 回答950 阅读
1 回答716 阅读
1 回答816 阅读
operator""s
位于命名空间std
的 2 个内联命名空间中。它基本上看起来像这样:因此,要仅获取字符串文字,请使用
using namespace std::string_literals;
。或者,如果您想包含 每个 文字 - 包括字符串文字(如
s
如果您包含chrono
,…):using namespace std::literals;
。根据情况,您还可以考虑使用:
而不是从该命名空间导入每个名称。
请注意,您仍然不应在全局级别将其包含在标头中(但您可以在您控制的内联或成员函数或命名空间中执行此操作)