[英]C++ - How to "Fill" a function call and use a default values for arguments
假设第三方库公开了一个类。 它的构造函数没有默认参数,并且所有参数都是相同的类型。
class Something{
public:
Something(int a, int b, int c, int d);
};
是否有任何语法允许使用每个参数的相同默认值来实例化该类?
例如:
Something s( sugar_stuff(42) ...) ; // <-> Something s(42,42,42,42);
谢谢,史蒂文
写一个函数:
Something createSomething(int v) {
return {v,v,v,v};
}
PS:我想构造函数实际上是公共的而不是私有的。
class SomethingElse : public Something{
public:
using Something::Something;
SomethingElse (int a)
: Something{a, a, a, a}
{}
};
您可以尝试创建一个调用原始函数的新函数:
void Something_new(int a = 42, int b = 42, int c = 42, int d = 42){
Something(a,b,c,d);
}
我最喜欢的是
class Something {
int a = 0, b = a, c = b, d = c;
}
Something x0{};
Something x1{1};
Something x2{1, 2};
Something x3{1, 2, 3};
Something x4{1, 2, 3, 4};
如果您愿意,也可以将所有内容初始化为a
或0
而不是前一个成员。
https://godbolt.org/z/Yxj883zsr
x4:
.long 1
.long 2
.long 3
.long 4
x3:
.long 1
.long 2
.long 3
.long 3
x2:
.long 1
.long 2
.long 2
.long 2
x1:
.long 1
.long 1
.long 1
.long 1
x0:
.zero 16
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.