如何显式编写数组引用返回类型?

时间:2014-08-06 19:54:55

标签: c++ syntax

我想知道如何显式返回对数组的引用的函数的返回类型。

typedef int const (Three_Const_Ints)[3];

Three_Const_Ints const & foo ()
{
    static int const values[] = { 0, 1, 2 };
    return values;
}

int const (&)[3] bar ()   // Does not compile. What is the proper syntax?
{
    static int const values[] = { 0, 1, 2 };
    return values;
}

是的,我可以使用std::array,但我想知道它的语法是什么。

4 个答案:

答案 0 :(得分:2)

问题已经回答here。也就是说,我今天也学到了新东西:)好问题。

答案 1 :(得分:1)

它是这样的:

int const (&bar())[3];

答案 2 :(得分:1)

返回对数组的引用使用以下语法:

int const (& bar())[3];

答案 3 :(得分:0)

尝试以下

int const (& bar() )[3]
{
    static int const values[] = { 0, 1, 2 };
    return values;
}

或者

typedef const int Three_Const_Ints[3];

Three_Const_Ints & f()
{
    static Three_Const_Ints values = { 0, 1, 2 };
    return values;
}