저는 wstring을 전방선언으로 사용하고 싶음
wstring은 basic_string으로 이루어짐
typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> wstring;
로 타입 재정의 된 것이 wstring
namespace std {
template<typename T> struct char_traits;
template<typename T> class allocator;
template<typename T1, typename T2 , typename T3> class basic_string;
typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> wstring;
}
이렇게 헤더 파일 위에서 사용하면 전방선언 잘 되네요
타입이 몇개인 템플릿인지 알려주고 타입 재정의시 타입정보가 필요했기에 사용하는 자료형의 정보도 재정의 해줬습니다
배운것은 템플릿은 정의와 선언이 함께 있는편이 사용하기 좋다
코드를 복사해서 붙여주는 느낌이다 매크로와 비슷한 느낌 링크시에 찾지 못한다.
하지만 선언시에는 메모리 할당을 하지 않는데 너무 많은 자료를 필요로 하지 않는가? 이부분은 잘 모르겠음
using classtype = otherclasstype; typedef와 같음
에디터에서 나를 헤더파일로 받아간곳에서 이미 정의가 되어있어서그런지 class basic_string을 선언하려하는데 자꾸 글씨가 청록색이아니라 흰색으로뜸 argument list for class template "std::basic_string" is missing 이라고 E에러코드(에디터에러코드인듯?) 알려주네요 많이 똑똑하네 에디터가 T1,T2 ... 은 생략 해도 되네요 class랑 struct 는 정확히 구분 해야 되네요 링크 에러 뜸 trait을 class로 선언하면