与DRY保持一致,我想避免重复返回默认值的函数的返回类型:
Foo bar()
{
return Foo{}; // shouldn't be necessary to respecify Foo here.
}
我尝试了一些事情并最终得到了这个结构:
Foo bar()
{
return {};
}
这似乎是列表初始化的返回表达式。我期望的相当于调用return Foo {{}}。我的问题是,这是一件事吗?因为我经常看不到它的使用,感觉非常方便。
答案 0 :(得分:0)
Foo bar()
{
return {};
}
这是完美的,简洁的!只要默认构造函数未声明为explicit
,它就会起作用。
但是,如果你有这个:
explicit Foo(); //though practically it doesn't make much sense to me!
然后return {};
不会工作,你必须写return Foo{};
instread。