我有一个有一堆常量字符串的类,形式为:
using namespace std::string_view_literals;
class T {
static const constexpr std::string_view something1 = "Alice"sv;
static const constexpr std::string_view something2 = "Bob"sv;
static const constexpr std::string_view something3 = "Charlie"sv;
...
};
我目前using
是string_view_literals
命名空间,但这不是头文件中的好习惯,并会生成警告:
Using namespace directive in global context in header [-Wheader-hygiene]
(铛)
literal operator suffixes not preceded by '_' are reserved for future standardization [-Wliteral-suffix]
(gcc7)
我想看看其他选择。
忽略警告
直接导入我正在使用的一个文字,而不是整个命名空间
using std::string_view_literals::operator""sv
由于这是一个 constexpr 常量,也许我应该直接调用构造函数,因为它没有运行时内存或 CPU 开销:
static const constexpr something1 = std::string_view("Alice");
还有什么?