このスニペットの何が問題なのかわかりません。次のエラーが表示されます。
エラー: メンバー関数 '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();
}
getArrElement
const
配列を返していません。auto
と推測されるべきですstd::initializer_list
が、私はそれにも害はないと思います。
どうしたの?