Вероятно, Клион ошибается. Ясно, что это не является недостижимым, если T бросает на присваивание копии. 1007 * и в каждом случае проверяет, что используемый тип не бросает. Однако я все равно не согласен с этим, поскольку Matrix
можно использовать там, где у Clion нет доступа.
Обратите внимание, что вы все равно не должны кодировать подобный код. Используйте std::vector
вместо необработанного указателя и динамических c выделений. Тогда вам не нужен блок try-catch: std::vector
позаботится об этом за вас.
Кроме того, я полагаю, вы хотели написать temp[i] = matrix.data[i];
в l oop.