c++ - 如何优雅地返回默认初始化的对象?

标签 c++ c++11 return default-value default-constructor

我有一个像下面这样的类:

class VeryVeryVeryLongTypeName
{
    bool is_ok;

    VeryVeryVeryLongTypeName() : is_ok(false) {}
};

VeryVeryVeryLongTypeName f()
{
    VeryVeryVeryLongTypeName v;

    ... // Doing something

    if (condition_1 is true)
    {
        return v;
    }
    else
    {
        return VeryVeryVeryLongTypeName();
    }

    ... // Doing something

    if (condition_2 is true)
    {
        return v;
    }
    else
    {
        return VeryVeryVeryLongTypeName();
    }    
}

我认为语句 return VeryVeryVeryLongTypeName(); 非常乏味和丑陋,所以,我的问题是:

如何优雅地返回默认初始化的对象?

或者换句话说:

在 C++ 标准中添加一项功能以使以下声明合法是个好主意吗?

return default; // instead of return VeryVeryVeryLongTypeName();

最佳答案

这要简洁得多:

   return {};

关于c++ - 如何优雅地返回默认初始化的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18798870/

相关文章:

c++ - 双重功能返回

java - 我的回归并没有停止执行

c++ - G++ 如何在 Linux 服务器上为 FreeBSD 编译

c++ - 从 std::继承类

qt - 如何使用bind将成员函数作为函数指针传递?

c++ - 将可变参数模板类型转换为 void,预期为 ')' 之前

c++ - 多重继承和unique_ptr销毁

rust - 进行unwrap_or_return的任何方式以尽早返回

c++ - 在 Mingw 64 位上使用 Clang

c++ - std shared_pointer_cast 未定义