C++: приведение объекта к массиву

Я пишу матричный класс и хочу иметь возможность преобразовывать матрицу фиксированного размера в двойной массив фиксированного размера. Хотя у меня проблемы с реализацией соответствующего оператора приведения. То, что я реализовал до сих пор, не работает: ошибка

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]'

Нет ли способа реализовать синтаксис, которого я хочу добиться?

0
задан Sebastian Hoffmann 21 March 2012 в 07:43
поделиться