Mar*_*cus 1 c++ qt optional-parameters
如何编写函数签名以使用QSet已填充QSet为默认值的可选参数。
我试过这个,但它不起作用!:(
enum MyEnum {
One,
Two,
Three,
Four
};
void function(int i, QSet<MyEnum> MySet = QSet<MyEnum>() << One << Two << Four);
Run Code Online (Sandbox Code Playgroud)
我还发现了这种方法:
QSet<MyEnum> const& foo();
void function(int i, QSet<MyEnum> MySet = foo());
Run Code Online (Sandbox Code Playgroud)
但是,我不高兴这个。
环境:
Qt:5.9.6
C++:11
您可以使用初始化列表作为默认参数,如下所示:
void function(int i, QSet<int> MySet = { 1, 2, 3 });
Run Code Online (Sandbox Code Playgroud)
更新:
使用enum class,它也可以正常工作。
这是示例:
enum class MyEnum : unsigned int
{
ONE = 1,
TWO,
THREE,
FOUR
};
void function(int i, QSet<MyEnum> MySet = { MyEnum::ONE, MyEnum::TWO });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |