-2
私は自分のクラスを作ったので、私はオペレータ""s
をオーバーロードしました。私はそれを私の文字列の形成に使うことができます。リテラル演算子を正しく上書きする方法は?
しかし、コンパイル時にエラーが発生し、その意味がわかりません。 誰かがその意味とその修正方法を説明できますか?
私のコード:
PString operator"" s(const char* text, std::size_t len) {
return PString(std::string(text, len));
}
私のエラー:
error: ‘PString PString::operator""s(const char*, std::size_t)’ must be a non-member function
PString operator"" s(const char* text, std::size_t len) {
エラーメッセージについて実際には何が不明ですか?リテラル演算子をクラスの一部としてオーバーライドしようとしているようです。 – user0042
私が不明な点は、エラーメッセージのこの部分は '非会員関数でなければならない 'ということです。何を意味するのかわかりません - いわゆる非会員です。 –
これは、 'PString'クラスの外にある自由な関数です。 – user0042