Если все элементы матрицы будут одного типа друг с другом (т.е. это однородная матрица - то есть все целые или все числа с плавающей запятой и т. Д.), То шаблонный подход - правильный путь.
Если, однако, вы хотите иметь возможность хранить гетерогенные типы (например, некоторые целые, некоторые числа с плавающей запятой и т. Д.), Вам придется использовать какой-то вариантный тип. Хорошим примером является реализация variant
.
Вы также можете просто использовать union
, но в любом случае вы, вероятно, в конечном итоге будете писать большую часть инфраструктуры variant
.