Я надеюсь унаследовать все методы, включая конструкторы std::array. я попробую
template<class T, size_t N>
class Vec : public array<T, N>
{
public:
using array<T, N>::array;
Vec operator+(Vec const& rhs) const
{
Vec res;
transform(begin(), end(), rhs.begin(), res.begin(), plus);
return res;
}
};
Но получил некоторые ошибки компиляции.
- 'begin': подходящая перегруженная функция не найдена
- Я не могу сделать
Vec<int, 2> v{1, 2};
как стандартные массивы, даже конструкторы наследуются.
Я могу что-то неправильно понять. Как решить эти ошибки. Любые лучшие идеи по добавлению арифметических операторов в std::array. Спасибо!