템플릿 별칭을 사용하여 행렬과 같은 벡터에 대한 Typedef 만들기
다음 클래스 템플릿을 고려하세요.
template<size_t N, size_t M> class Matrix { // .... };
목표는 크기가 있는 행렬과 동일한 벡터(열 벡터)를 생성하는 typedef를 정의하는 것입니다. N 및 1. 처음에는 typedef를 사용하여 시도했습니다:
typedef Matrix<N,1> Vector<N>;
그러나 이로 인해 컴파일 오류가 발생했습니다. 유사하지만 동일하지는 않은 솔루션이 클래스 상속을 사용하여 달성되었습니다.
template <size_t N> class Vector: public Matrix<N,1> { };
더 적합한 솔루션을 찾기 위해 C 11에 도입된 별칭 선언을 사용합니다.
template <size_t N> using Vector = Matrix<N, 1>;
이를 통해 다음이 가능해졌습니다. 유형 별칭 Vector
C 03에서는 중첩된 typedef가 있는 구조체를 사용하여 유사한 근사치를 얻을 수 있습니다.
template <size_t N> struct Vector { typedef Matrix<N, 1> type; };
여기서 Vector< N>::type은 Matrix
위 내용은 C의 행렬 템플릿에서 벡터 유형 별칭을 어떻게 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!