代码之家  ›  专栏  ›  技术社区  ›  bur

const std::array成员引用可以用右值初始化吗?

  •  0
  • bur  · 技术社区  · 6 年前

    const std::array 使用初始值设定项列表进行引用:

    class Foo {
        const std::array<const int&, 3> &bar;
        Foo() : bar({ 1, 2, 3 }) {}
    }
    

    但显然

    问:有没有一种方法可以初始化 具有右值的引用成员?

    1 回复  |  直到 6 年前
        1
  •  0
  •   bur    6 年前

    从对这个问题的评论中,我可以得出结论,我没有意识到两件事:

    • const 常数 引用非成员,因为它们不会延长临时值的寿命。

    作为补充说明,一名成员 std::array 包含 T&

    • 警告:“Foo”具有虚拟函数,但具有非虚拟析构函数

    • 错误:正在形成指向引用类型“std::array::value_type{aka const int&}”的指针