편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2020.07.27

    Function template, nested class


    //
    template <typename T>
    class A {
        private:
            class B {
                private:
                    T var0;
                ...    
            };
    
        private:
            int var1;
            int var2;
    
        public:
            B();
            ~B();
    
            int f1();
            char f2();
            B f3()
    };
    
    template <typename T>
    A<T>::A() {
        ...
    }
    
    template <typename T>
    int A<T>::f1() {
        ...
    }
    
    template <typename T>
    char A<T>::f2() {
        ...
    }
    
    //point of error
    template <typename T>
    A<T>::B A<T>::f3() {
        ...
    }
    
    

    .

    [Error] need 'typename' before A<'T'> because A<'T'> is a dependent scope
    

    .

    A안에 클래스 B가 있습니다.

    A안에 B data type을 return 하는 member function, f3이 있습니다.

    이 member function의 body를 구현하는 부분에서 계속 오류가 발생합니다.

    해결방법을 알려주시면 감사하겠습니다.

    .

  • 프로필 김윤재님의 편집
    날짜2020.07.25

    Function template, nested class


    //
    template <typename T>
    class A {
        private:
            class B {
                private:
                    T var0;
                ...    
            };
    
        private:
            int var1;
            int var2;
    
        public:
            B();
            ~B();
    
            int f1();
            char f2();
            B f3()
    };
    
    template <typename T>
    A<T>::A() {
        ...
    }
    
    template <typename T>
    int A<T>::f1() {
        ...
    }
    
    template <typename T>
    char A<T>::f2() {
        ...
    }
    
    //point of error
    template <typename T>
    A<T>::B A<T>::f3() {
        ...
    }
    
    

    .

    [Error] need 'typename' before A<'T'> because A<'T'> is a dependent scope

    .

    A안에 클래스 B가 있습니다.

    A안에 B data type을 return 하는 member function, f3이 있습니다.

    이 member function의 body를 구현하는 부분에서 계속 오류가 발생합니다.

    해결방법을 알려주시면 감사하겠습니다.

    .