std::string
簡単な質問: C++11 は、次のようなを作成するための「ユーザー」(実際には標準ライブラリ) 定義のリテラルを提供しないのはなぜですか?
auto str = "hello world"s; // str is a std::string
C++ と同様に、Objective-C は C スタイルの文字列と、より使いやすいライブラリ型の両方をサポートしていますNSString
。ただし、C++ とは異なりNSString
、文字列リテラルの前に@
. 実際、リテラルにプレフィックスがないObjective-C コードを目にすることはほとんどありません。@
誰もがそれを行う方法であると知っており、それを使用しNSString
、続けています。
C++11 のユーザー定義リテラルではこれが可能であり、実際、Stroustrup の C++11 FAQ の UDL セクションでは、まさにこの例が使用されています。さらに、先頭にアンダースコアがない UDL は予約されているため、s
上記のようにプレーンを許可しても問題はありません。他のものと衝突する可能性はありません。
おそらく私は何かを見逃していますが、これは言語への非常に価値があり、リスクのない追加であるように思われるので、C++11 がそれを提供しない理由を誰か知っていますか? C++14 で表示される可能性はありますか?