在 C++ 中使用所有默认参数调用函数时使用参数名称
Use param name when calling function with all default parameters in C++
在 C++ 中,如果我有一个带有所有默认参数的函数:
void foo(int a = 9, int b = 3);
我可以用参数名来调用它吗?喜欢:
foo(b = 5);
网上查了一下,好像不能绕过第一个参数,指定第二个参数的值。
问题是我想要一个函数来初始化一个结构。它接受随机数量的结构成员的值,然后使用默认值初始化其他成员。我怎样才能做到这一点?
你不能直接这样做,因为 c++ 支持函数调用中的按顺序参数。
您可以通过创建一个带有设置器的结构来实现您的目标,return 通过引用它自己,然后您可以链接您的调用:
MyStruct s;
s.set_a(8).set_b(3453).set_whatever("Hellow world");
阅读有关构建器设计模式的更多信息here(+示例)。
或者,如果您坚持使用函数参数的名称,您可以尝试 boost parameter 库。
在 C++ 中,如果我有一个带有所有默认参数的函数:
void foo(int a = 9, int b = 3);
我可以用参数名来调用它吗?喜欢:
foo(b = 5);
网上查了一下,好像不能绕过第一个参数,指定第二个参数的值。
问题是我想要一个函数来初始化一个结构。它接受随机数量的结构成员的值,然后使用默认值初始化其他成员。我怎样才能做到这一点?
你不能直接这样做,因为 c++ 支持函数调用中的按顺序参数。
您可以通过创建一个带有设置器的结构来实现您的目标,return 通过引用它自己,然后您可以链接您的调用:
MyStruct s;
s.set_a(8).set_b(3453).set_whatever("Hellow world");
阅读有关构建器设计模式的更多信息here(+示例)。
或者,如果您坚持使用函数参数的名称,您可以尝试 boost parameter 库。