我忘记了用于描述我大约一年前(也许更久)前看到的提案中使用的功能的确切术语。它看起来类似于 C# 扩展方法,因为可以使用类成员语法调用定义为类接口(interface)一部分的全局函数。非常非常愚蠢的例子:
class Foo
{
public:
void One();
};
void Two(Foo&);
int main()
{
Foo f;
f.One();
f.Two(); // This was valid in the proposal I saw
}
我确信我的代码示例已经过时了,但我更多地使用它来尝试传达我记得看到的功能。我是完全离开这里还是有 C++ 的提案引入了这种机制?如果是这样,有人可以向我指出该提案及其状态/时间表吗?
最佳答案
有一个针对 C++ 的统一 (var Uniform) 调用语法的提案。从 10,000 英尺的 PoV 开始,它将允许使用 C# 扩展方法,并真正混合给定对象的方法调用和函数调用之间的差异。
这里是这个功能的简短描述
https://isocpp.org/blog/2016/02/a-bit-of-background-for-the-unified-call-proposal
据我所知,它没有进入 C++17(为时已晚?),等待 c++2x
关于c++ - C++ 中 "extension methods"的标准化提案在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49777818/