有什么方法可以使“点”运算符“。”重载。
我们想在重写 ORM 层时使用我们的旧代码库。所以我们有了包装对象并向成员选择运算符“.”添加一些新语义的想法。
我们找到了几个讨论这个问题的网站,包括这里的 SO,都说理论上可以,但当前的 C++ 标准不允许这样做。
也许已经有一个编译器可以做到这一点?
编辑
感谢您的快速回答;我们看到,即使不是不可能,也很难找到这样的编译器。任何进一步的提示表示赞赏。我们已经阅读过您发布的所有资源...
简而言之,我们想要实现的目标:包装器没有任何自己的成员,它只是应该以另一种方式提供以前的真实对象。出于向后兼容性的原因,实现我们的新层将非常方便——我们可以避免在大约 4000 次以上的情况下修改遗留客户端代码。
如果您有任何其他想法如何以其他方式进行,请告诉。这个限制在 C++11 中还会存在吗?
编辑 2
还不确定,我将报告我们的工作。