Я пишу матричный класс и хочу иметь возможность преобразовывать матрицу фиксированного размера в двойной массив фиксированного размера. Хотя у меня проблемы с реализацией соответствующего оператора приведения. То, что я реализовал до сих пор, не работает: ошибка
template<unsigned int M, unsigned int N>
class Matrix
{
typedef double (&ArrayType)[M][N];
public:
operator ArrayType();
}
Matrix<3,3> mat1;
double matArr[3][3];
matArr = mat1;
: несовместимые типы при назначении ‘sfz::Matrix<3u, 3u>’ 'double [3][3]'
Приведение матрицы явно вызывает другую ошибку:
ошибка: ISO C++ запрещает приведение к типу массива 'double [3][3]'
Нет ли способа реализовать синтаксис, которого я хочу добиться?