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++ 覆盖引号的主要内容,如果未能解决你的问题,请参考以下文章