在 C++23 中,推导这一点最终被添加到标准中。
根据我从提案中读到的内容,它开辟了一种创建 mixin 的新方法,并且可以创建递归 lambda。
但是我很困惑,如果这个参数创建一个“副本”而不使用模板,因为没有引用,或者显式this
参数是否有自己的值类别规则?
自从:
struct hello {
void func() {}
};
可能相当于:
struct hello {
void func(this hello) {}
};
但是它们的类型不同,因为对于&hello::func
,第一个给出void(hello::*)()
,而第二个给出void(*)(hello)
例如,我有这个简单的功能:
struct hello {
int data;
void func(this hello self) {
self.data = 22;
}
};
参数不需要this
是更改hello
类型值的引用吗?还是和以前一样基本上遵循成员函数的 cv-ref 限定符规则?