标准预定义了哪些用户定义的文字?

def*_*ode 10 c++ user-defined-literals c++11

我的问题听起来像是一个矛盾,但我不知道如何引用新的文字语法而不是user-defined-literal.

std::string operator "" s ( const char* str, size_t len )
{
   return std::string( str, len );
}

assert( "foo"s == "bar"s );
Run Code Online (Sandbox Code Playgroud)

我记得听说用户定义的文字应该以_前缀开头.这意味着图书馆为我们定义了一些非前缀文字.

标准是否在标准库中提供了一些UDL?
如果是的话,他们是什么?

Bo *_*son 6

标准库实际上没有定义用户定义的文字.我们可能已经预料到了复数,但没有.

另一方面,还有一项建议是再次删除它们

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3250.html

所以我们还不知道会发生什么.


Mat*_* M. 5

例如,该语言已使用常规文字后缀1U.

如果你要U用作用户定义的文字,那么这将是不明确的,因此建议.

整数后缀:u,U,l,L,ll,LL

浮动后缀:f,F,l,L