According to cppreference it is possible to define a literal using
CSomeClass operator ""s(const char* literal, size_t size);
Now after reading the paragraph I think it should be also possible to define
CSomeClass operator ""r(const char* literal, size_t size);
(note the r
ud-suffix instead of s
)
Overloading s
just gives the clang warning
warning: user-defined literal suffixes not starting with '_' are reserved [-Wuser-defined-literals]
which I can't really understand as I'm compiling with -std=c++14
. Overloading r
gives
error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
warning: user-defined literal suffixes not starting with '_' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
which seems even less accountable to me.
Why does clang emit these warnings/errors and how can I make the r
ud-suffix valid.