如何正确覆盖文字运算符?

时间:2017-12-09 13:06:32

标签: c++ string compiler-errors string-literals

好的,所以我创建了自己的类,我重载了一个运算符""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) {

1 个答案:

答案 0 :(得分:0)

好的,所以在提出这个问题之前,我对某些事情感到困惑。因为我已经在类中添加了其他运算符覆盖,我认为我应该在类中添加operator"" s。但显然,情况并非如此。

我保留这个作为@ user0042给我的答案的参考。

这就解决了我的问题。