C++ 覆盖引号

Posted

技术标签:

【中文标题】C++ 覆盖引号【英文标题】:C++ override quotes 【发布时间】: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) 
                     ^~

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

谢谢!

【问题讨论】:

有no "" operator and you cannot overload it。有user defined literals,但它们需要一个后缀。 谢谢!如果不是运营商是什么? "" 是string literals 的一部分。 现在说得通了……谢谢:D 【参考方案1】:

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

【讨论】:

以上是关于C++ 覆盖引号的主要内容,如果未能解决你的问题,请参考以下文章

c++中怎么输出引号

C++语言中怎么输出双引号

g++ 与 MSVC 中 C++ 引号的含义

c++ mysql查询字符串解析带引号和变量

在 Windows 上使用 C++ 中的 system(),为啥调用另一个目录中的程序需要两个引号?

双引号内带有逗号和字符串的 C++ CSV 行