0

有什么方法可以使“点”运算符“。”重载。

我们想在重写 ORM 层时使用我们的旧代码库。所以我们有了包装对象并向成员选择运算符“.”添加一些新语义的想法。

我们找到了几个讨论这个问题的网站,包括这里的 SO,都说理论上可以,但当前的 C++ 标准不允许这样做。

也许已经有一个编译器可以做到这一点?

编辑

感谢您的快速回答;我们看到,即使不是不可能,也很难找到这样的编译器。任何进一步的提示表示赞赏。我们已经阅读过您发布的所有资源...

简而言之,我们想要实现的目标:包装器没有任何自己的成员,它只是应该以另一种方式提供以前的真实对象。出于向后兼容性的原因,实现我们的新层将非常方便——我们可以避免在大约 4000 次以上的情况下修改遗留客户端代码。

如果您有任何其他想法如何以其他方式进行,请告诉。这个限制在 C++11 中还会存在吗?

编辑 2

还不确定,我将报告我们的工作。

4

1 回答 1

0

您不能重载点运算符,并且没有支持此属性的 c++ 编译器。检查来自维基百科的这个链接,它更详细地解释了 C++ 中的运算符重载。http://en.wikipedia.org/wiki/C%2B%2B_operators

于 2012-10-11T17:12:58.167 回答