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