11

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 {};
    }
}
4

1 に答える 1