I don't understand the significance of using two double quotes with strings in C++. I saw the following code somewhere:
class str_literal;
static str_literal operator"" _s(const char *s, size_t len);
class str_literal {
private:
explicit str_literal(const char *s)
: m_str(s) //&(STRING_LITERAL(s)))
{}
const char *m_str;
public:
friend str_literal operator"" _s(const char *s, size_t len);
};
static str_literal operator"" _s(const char *s, size_t len) {
return str_literal(s);
}
#define S(str) "" str "" _s
Why not make the constructor public and just do this?
#define S(str) str_literal(str)