说我有这个结构
struct float2 {
float x;
float y;
}
然后在某处有一些构造函数
struct constructable {
constructable(float2 opt = float2()) {
if (opt == float2()) { //doesn't work
//fill out opt with default values
}
}
}
如何检查是否通过opt传递了某些内容?
答案 0 :(得分:1)
而不是
struct constructable {
constructable(float2 opt = float2()) {
if (opt == float2()) { //doesn't work
//fill out opt with default values
}
}
};
如果在编译时已知所需的默认值,那么只需执行
struct constructable {
constructable(float2 opt = {2.72, 3.14} ) {
}
};
否则使用两个构造函数:
struct constructable {
constructable() {
// Use whatever computed values
}
constructable(float2 o) {
// Use o
}
};