如何编写函数签名以使用可选的QSet
参数(已填充的QSet
作为默认值)。
我已经尝试过了,但是行不通! :(
enum MyEnum {
One,
Two,
Three,
Four
};
void function(int i, QSet<MyEnum> MySet = QSet<MyEnum>() << One << Two << Four);
我也发现了这种方法:
QSet<MyEnum> const& foo();
void function(int i, QSet<MyEnum> MySet = foo());
但是,对此我不满意。
环境:
最佳答案
您可以使用initializer-list作为默认参数,如下所示:
void function(int i, QSet<int> MySet = { 1, 2, 3 });
更新:
使用
enum class
,它也可以正常工作。这是示例:
enum class MyEnum : unsigned int
{
ONE = 1,
TWO,
THREE,
FOUR
};
void function(int i, QSet<MyEnum> MySet = { MyEnum::ONE, MyEnum::TWO });
关于c++ - 已将QSet填充为可选参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51966067/