c++ - C++ 中 "extension methods"的标准化提案在哪里?

标签 c++

我忘记了用于描述我大约一年前(也许更久)前看到的提案中使用的功能的确切术语。它看起来类似于 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/

相关文章:

java - Android 原生应用程序源代码

c++ - 将数据部分保存在持久性存储 (SQL) 中,部分保存在 RAM(内存)中的设计模式是什么?

c++ - STM32 ADC 值读数太高

c++ - 从 32 位应用程序 Hook 64 位进程

c++ - 如何从另一个进程/程序向 DBus 服务添加对象

c++ - 命名空间和前向声明问题

c++ - 为什么 std::find 是这样实现的?

c++ - 从静态派生的基类实现虚方法

c++ - "Custom intrinsic"x64 函数而不是内联汇编可能吗?

c++ - 如何更改数组中的值 C++