<AAA.h>
#pragma once
#include <vector>        // fwd decl은 안 된다고 한다. //template <typename T> class std::vector;
/*
namespace std {
        template<class _Ty> class allocator;
        template<class _Ty, class _Ax> class vector;
};
// 이렇게 고쳐도 안 됨 전방선언 안 되는 건 마찬가지당...
*/

namespace NS {
        template <typename T> class AAA{
        public:
                AAA(size_t size=0, T value=0);
                virtual ~AAA(void);
        protected:
                std::vector<T>* _vector;
        };
}

<AAA.cpp>
#include "NS.h"
#include <vector>

using namespace std;
using namespace NS;

template <typename T> 
AAA<T>::AAA (size_t size=0, T value=0) :
_vector(new std::vector<T>(size, value)) 
{}

template <typename T>
AAA<T>::~AAA (void) {
        delete _vector;
}

아오 #include를 하면 링크 에러 나고
#inlcude 안 하고 fwd decl 하면 컴파일 에러가 나고 이거 왜 이럼?