Programing

C ++ 템플릿 typedef

lottogame 2020. 3. 1. 15:35
반응형

C ++ 템플릿 typedef


수업이 있습니다

template<size_t N, size_t M>
class Matrix {
    // ....
};

크기 N과 1에 해당 typedef하는 Vector(열 벡터) 를 만드는 a 를 만들고 Matrix싶습니다.

typedef Matrix<N,1> Vector<N>;

컴파일 오류가 발생합니다. 다음은 비슷한 것을 만들지 만 정확히 내가 원하는 것을 만들지는 않습니다.

template <size_t N>
class Vector: public Matrix<N,1>
{ };

해결책이나 너무 비싸지 않은 해결책 / 최선의 방법이 있습니까?


C ++ 11은 별칭 선언을 추가 typedef하여 일반화 되어 템플릿을 허용합니다.

template <size_t N>
using Vector = Matrix<N, 1>;

유형 Vector<3>Matrix<3, 1>입니다.


C ++ 03에서 가장 가까운 근사값은 다음과 같습니다.

template <size_t N>
struct Vector
{
    typedef Matrix<N, 1> type;
};

여기서 유형 Vector<3>::type은와 동일합니다 Matrix<3, 1>.

참고 URL : https://stackoverflow.com/questions/2795023/c-template-typedef



반응형