【问题标题】:C++ override quotesC++ 覆盖引号
【发布时间】:2018-05-23 11:28:58
【问题描述】:

好的,所以我正在使用 C++ 创建一个库,可以帮助我将行打印到控制台中。

所以,我想覆盖 " "(引号运算符)以创建 std::string 而不是字符串文字,以便我更容易将其他数据类型附加到我想要输出的字符串。

我以前在wxWidgets 和他们的wxString 中看到过这种情况,但我不知道我自己该怎么做。

这可能吗?我该怎么做?

我已经尝试过使用此代码,但没有成功:

class PString{
    std::string operator""(const char* text, std::size_t len) {
        return std::string(text, len);
    }
};

我收到此错误:

error: expected suffix identifier
 std::string operator""(const char* text, std::size_t len) {
                     ^~

我想,希望我在“”之后添加一个后缀,但我不希望这样。我只想使用“”(引号)。

谢谢!

【问题讨论】:

标签: string c++11 overriding operators


【解决方案1】:

您不能在不定义后缀的情况下使用"""" 是一个 const char* 本身,可以带有前缀(如L""u""U"")或后缀如(""s...),可以重载。

【讨论】:

    猜你喜欢
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    相关资源
    最近更新 更多