【发布时间】:2015-01-28 23:46:14
【问题描述】:
我正在制作一个将类型作为模板的项目。如您所知,operator== 已经为字符、整数、字符串等重载,但是如果用户决定传入一个 cstring(以空字符结尾的字符数组),我将需要为此重载 ==。我可以选择仅在用户使用 cstrings 时重载 operator==,而在他们不使用时使用默认 == 吗?这将如何实现?
【问题讨论】:
-
请向我们展示您的代码。
-
你的意思是重载还是模板特化?
-
代码很长,无论如何这是一个普遍的问题。我不觉得这会有所帮助。 Greatwolf,我的意思是超载。
-
也许可以使用 C++11 的 'enable_if' 来做到这一点。
-
“代码很长,无论如何这是一个普遍的问题。我不认为它会有所帮助。” - 最好创建最少的代码来说明您在此处发布的特定问题,即使它不是您的项目代码的提炼。我发现您的问题非常不清楚且措辞模棱两可(例如,不清楚“cstring”是否是一个管理空终止字符数组的类,或者您试图简洁地描述后者,并且“将类型作为模板”的措辞非常奇怪)。
标签: c++ syntax operator-overloading