在 C# 和 Python 等某些语言中,有“命名参数”的概念。在一本关于 C# 的书中我找到了代码:
static void print_nums(int x = 0, int y = 0, int z = 0)
{
Console.WriteLine(x, y, z);
}
然后就可以像这样调用该函数了
print_nums(y: 3);
C++中有类似的东西吗?我见过一些这样的问题,但它们大约有 7-8 年历史,所以也许在较新版本的 C++ 中添加了语法?我也看到这种类型的功能可以手动实现,但我的问题是关于标准的。
有点。从 C++20 开始,您可以使用指定的初始值设定项来达到类似的效果:
struct params {
int x;
int y;
int z;
};
void func(params p) {
}
int main() {
func({.y = 3}); // p.x and p.z will be 0, p.y = 3
func({.x = 3, .y = 10, .z = 2}); // here all are initialized to resp. Value
}
请注意,您需要按照
params
中出现的顺序命名指定成员。