이렇게 템플릿 써놓고 함수 호출할 때 <좌우사이즈,상하사이즈> 넣어주면 컴파일할 때 SIZEW랑 SIZEH가 실제 크기로 바뀔거라 생각했는데 작동 안하더라 매개변수로 배열 컨테이너 크기를 전달하면 매개변수에 매개변수 쓸 수 없다고 오류 뜨고 위 사진처럼 쓰면
이렇게 오류 생김 방법 없을까? 템플릿 너무 어려움...
이렇게 템플릿 써놓고 함수 호출할 때 <좌우사이즈,상하사이즈> 넣어주면 컴파일할 때 SIZEW랑 SIZEH가 실제 크기로 바뀔거라 생각했는데 작동 안하더라 매개변수로 배열 컨테이너 크기를 전달하면 매개변수에 매개변수 쓸 수 없다고 오류 뜨고 위 사진처럼 쓰면
이렇게 오류 생김 방법 없을까? 템플릿 너무 어려움...
C++ 템플릿은 컴파일 타임에 해당되는 타입의 코드를 생성하니까 저렇게 사이즈가 결정되지 않은 놈은 못씀. 숫자를 직접 넣어야지
근데 1차원 배열에는 저렇게 쓰면 작동하는게 너무 이상함 왜 2차원 배열은 안되는거지
일차원으로 하고 적당히 잘라서 써
잘라서 하면 코드도 길어지고 나중에 고칠 때 힘들 것 같아서 무서움
어차피 인자로 array 받을 거면 굳이 템플릿 왜 씀?
보니까 template argument로도 인자의 size() 넘겨주는 거 같은데, 타이핑 양만 늘어나고 별 이득 없는 거 아님?
근데 함수에 배열 크기 넘겨주는 방법이 템플릿으로 넘겨주는 방법밖에 모르겠음...
array 타입으로 인자 넘겨줄 거면 그냥 내부에서 size() 쓰면 되는 거 아니냐는 의미였음.
readCSV{arr[0].size(), arr.size()}(buf, arr); 호출하는 모양새도 이상하잖아
아 윗답변 무시하셈. 내가 뭘 착오했네. 애초에 2차원 array를 넘겨주려면 템플릿이 필요하네
readCSV< >()에서 < > 안에 있는거 빼면 작동 안 함?
그냥 readCSV("foo.csv", entityDex); 해보셈
1차원 배열이면 readCSV에서 <> 넣든 안넣든 전부 작동하던데 2차원 배열로 바꿨을 때는 <>를 넣든 말든 아예 작동 안함ㅜㅜ 둘 다 똑같이 일치하는 템플릿 인스턴스가 없다고 오류 생겨버림
오류메시지 다시 봤는데 왜 arr에 std::wstring이 아니라 int형 배열을 줌?
고맙다...