-2

このスニペットの何が問題なのかわかりません。次のエラーが表示されます。

エラー: メンバー関数 'swap' は実行できません: 'this' 引数の型は 'const array' ですが、関数は const とマークされていません

#include <algorithm>
#include <memory>
#include <iostream>
#include <array>

struct MyClass {
  std::array<float, 4> arr;  
  float carr[4];

  std::array<float, 4> getArrElement() {
    std::array<float, sizeof(carr) / sizeof(float)> out;
    return out;
  }

  void fun() {
    auto vec = { getArrElement(), getArrElement(), getArrElement() };
    std::reverse(vec.begin(), vec.end()); // <-- error line here
  }


};

int main()
{
    MyClass obj;
    obj.fun();
}

getArrElementconst配列を返していません。autoと推測されるべきですstd::initializer_listが、私はそれにも害はないと思います。

どうしたの?

4

2 に答える 2