一般来说,标题中的问题是什么样的重载(如果将重载一词应用于此)运算符“”,为什么使用它?
long double operator "" _w(long double);
std::stringoperator "" _w (const char16_t* , std::size_t) ;
unsigned operator "" _w(const char*);
int main {
1.2_w; // вызов operator " " _w (1.2L)
u"one"_w; // вызов operator "" _w (u"one", 3)
12_w; // вызов operator " " _w ("12")
"two"_w; // ошибка: нет применимой литеральной операции
}
以下是它可以用于什么的示例:
然后,这些运算符允许您在代码中使用表单的构造:
实际将转换为什么
但是,在我看来,记录
50_mb本身就说明了它是一个什么样的数字。使用这样的机制来指示时间也很方便:
然后像这样使用:
这些是自定义文字。
您可以根据要求在 Google 或Habré上阅读更多内容。
这里也值得一读。
您自己定义的用户定义文字必须用下划线分隔,以免与标准库中包含的文字冲突 - 如示例
3s中所示std::chrono_literals