有没有办法超载“dot”-operator“。”
我们希望在重写ORM层时使用旧的代码库。所以我们想要包装对象并为成员选择运算符“。”添加一些新的语义。
我们发现有几个网站正在讨论这个问题,其中包括SO,所有人都说在理论上会很好,但目前的C ++标准不允许这样做。
也许有编译器可以做到这一点?
修改
感谢您的快速解答;我们发现找到这样的编译器可能很难,如果不是不可能的话。任何进一步的提示表示赞赏。您已阅读的所有已发布资源...
简要说明我们想要实现的目标:包装器没有任何自己的成员,它应该以另一种方式提供前一个真实对象。出于向后兼容性的原因,实现新层非常方便 - 我们可以避免在约> 4000次出现时修改旧版客户端代码。
如果您有任何其他想法如何以其他方式进行,请告诉我们。这个限制是否仍然存在于C ++ 11中?
编辑2
尚不确定,我将报告我们的工作。
答案 0 :(得分:0)
您不能重载点运算符,并且没有支持此属性的c ++编译器。查看维基百科中的这个链接,它更详细地解释了C ++中的运算符重载。 http://en.wikipedia.org/wiki/C%2B%2B_operators