Я учусь ускоренно, и я хотел переписать свой класс Matrix.Вместо циклов for я хотел использовать BOOST_FOREACH, однако у меня есть некоторые проблемы с перегрузкой операторов.
Это оригинальная версия оператора перегрузки / =
template<typename T>
Matrix<T> Matrix<T>::operator /= ( double varValue)
{
for (int i=0;i<this->rows;i++)
{
for (int j=0;j<this->columns;j++)
{
datavector.at(i).at(j) /= varValue;
}
}
return *this;
}
Я хотел изменить код вышев нечто вроде этого
template<typename T>
Matrix<T> Matrix<T>::operator /= ( double varValue)
{
BOOST_FOREACH(vector<T> row,datavector)
{
BOOST_FOREACH(T item,row)
{
item /= varValue;
}
}
}
Однако я постоянно получаю сообщение об ошибке
T: незаконное использование этого типа в качестве выражения
Есть ли способэто исправить?