返回一个空的初始化列表作为函数的默认值

时间:2015-08-11 03:11:06

标签: c++

与DRY保持一致,我想避免重复返回默认值的函数的返回类型:

Foo bar()
{
    return Foo{};  // shouldn't be necessary to respecify Foo here.
}

我尝试了一些事情并最终得到了这个结构:

Foo bar()
{
    return {};
}

这似乎是列表初始化的返回表达式。我期望的相当于调用return Foo {{}}。我的问题是,这是一件事吗?因为我经常看不到它的使用,感觉非常方便。

1 个答案:

答案 0 :(得分:0)

Foo bar()
{
    return {};
}

这是完美的,简洁的!只要默认构造函数未声明为explicit,它就会起作用。

但是,如果你有这个:

explicit Foo(); //though practically it doesn't make much sense to me!

然后return {};不会工作,你必须写return Foo{}; instread。