C++14でのreturnとreturn (…)の違い

C++14で導入されるdecltype(auto)を使うと、returnreturn (…)で戻り値の型が変わる。前者は値、後者は参照となる。

decltype(auto) f()
{
    static int value = 3;
    return value;
}

decltype(auto) g()
{
    static int value = 3;
    return (value);
}

int main()
{
    int f_result = f();
    int& g_result = g();
}

参照