Мне нужна помощь в понимании кода.
Я читал в других местах, где передача строкового литерала в качестве const char*
является допустимой. Но в последней строке этот код из cppreference для пользовательской строки литералы, это говорит об отсутствии буквального оператора для "two"
. Почему это так, если строковый литерал "two"
может быть передан функции, принимающей const char*
?
long double operator "" _w(long double);
std::string operator "" _w(const char16_t*, size_t);
unsigned operator "" _w(const char*);
int main() {
1.2_w; // calls operator "" _w(1.2L)
u"one"_w; // calls operator "" _w(u"one", 3)
12_w; // calls operator "" _w("12")
"two"_w; // error: no applicable literal operator
}