Очки для рассмотрения:
operator=
может быть перегружено только как функция-член.
- Определение операторной функции таким способом, как у вас, невозможно, если функция не объявлена как функция-член класса.
- Существуют простые способы назначения
arma::vec
. Используйте их вместо попытки определить перегрузку oprator=
.
Пример кода, демонстрирующий, как вы можете назначать различные типы контейнеров для std::vector
.
#include <iostream>
#include <vector>
#include <set>
int main()
{
std::vector<int> a;
int b[] = {1, 2, 3, 4, 5};
std::set<int> c{10, 20, 30, 40, 50};
a = {std::begin(b), std::end(b)};
for ( int el : a )
{
std::cout << el << " ";
}
std::cout << std::endl;
a.assign(std::begin(c), std::end(c));
for ( int el : a )
{
std::cout << el << " ";
}
std::cout << std::endl;
}
В вашем случае вы можете использовать одно из следующих:
std::vector<YourType> v;
v = {std::begin(right), std::end(right)};
v.assign(std::begin(right), std::end(right));