小编Rom*_* D.的帖子

使用 std::optional 时的命名返回值优化

我最近发现std::optional了一种提高代码清晰度的方法,尤其是对于函数的返回值。但是我对它对性能的影响有疑问。更具体地说,我想知道是否可以编写类似于以下代码的代码,以允许编译器应用命名返回值优化。

struct Data
{
    int x;
    int y;
};

std::optional<Data> makeData(bool condition)
{
    Data data;

    if(condition)
    {
        data.x = 2.0;
        data.y = 2.0;

        return data;
    }
    else
    {
        return {};
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ optional nrvo

8
推荐指数
1
解决办法
421
查看次数

标签 统计

c++ ×1

nrvo ×1

optional ×1