두 개의 Matrice 클래스가 있다고 가정 해 보겠습니다. 한 행렬은 2 x 2이고, 다른 행렬은 3 x 3입니다. 물론 같은 차원이 아닌 두 행렬을 곱할 수는 없습니다.C++ 사용자 정의 컴파일시 검사
런타임 검사를 할 수 있다는 것을 알고 있지만 C++ 언어를 사용하여 컴파일 타임 검사를 작성하는 방법이 있습니까? 그래서 서로 다른 차원의 두 개의 정의 된 행렬이 곱 해지는 프로그램을 컴파일하려고하면 컴파일 타임 오류가 발생합니다.
Matrix *matrix1 = new Matrix(2,2);
Matrix *matrix2 = new Matrix(3,3);
Matrix_Multiply(matrix1,matrix2); // compiler throws error on this line
또한이 항목을 읽는 동안이 기능이있는 프로그래밍 언어가 있습니까?
컴파일 타임에이를 알 수 있지만 오류를 생성하는 방법이 명확하지 않은 경우를 예로들 수 있습니까? 나는 컴파일 타임에 말할 수없는 경우를 생각할 수있다. 그리고 컴파일 타임에 오류를 생성하는 것이 명백한 경우를 생각해 볼 수 있습니다. 네가 묻고있는 사건을 생각할 수 없다. –