템플릿 쓰면 코드 타이핑 줄일 수 있다... 빌드타임 씹창난다... TMP 쓰지마라... 타입 몇개 안되면 그냥 함수 만들어서 써라... 컨테이너에서만 써라... 등등 시발 어떻게 쓰라는거야...
써도 될만한 상황, 쓰면 안되는 상황을 잘 모르겠네;; 그러다보니 C++ 기능중에 템플릿으로 제공하는 함수들 써도 되는지 모르겠고... 내가 배우는 강의에서는 템플릿 엄청 사용하는데 인터넷에서 이런 저런 얘기 많이 듣다보니까 저게 좋은건지 안좋은건지 모르겠고 의구심부터 존나드네. 진짜 C++ 존나어렵다. 뭘 써야하는지, 뭘 쓰면 안되는지, 어느정도부터 써야하는지, 어디까지 써야하는지 이런거 구분하기 존나어렵네..
나 혼자 할 때는 떡칠한다 ㅋㅋㅋㅋㅋ
혹시 내가 질문한거에 대한 답을 알 수 있는 책이나 글, 강좌 있음??
타입 빡세게 관리하고 컴파일 타임 평가로 런타임 성능을 detrministic하게 향상시키고 싶으면 써. 템플릿이 빌드 타임을 저하시키는 이유는 컴파일러가 템플릿을 평가하려면 쓰이는 context를 전부 알아야 함. 이때 컴파일에 쓰이는 단위를 translation unit (TU)이라 부르는데 템플릿이 쓰인 코드는 한 TU로 분류되어서 동시적으로 여러
스레드에서 처리하는 게 어려움. 만약 하려면 각 스레드마다 TU의 context를 알아야 하는데 이러면 멀티스레드의 의미가 없음. monomorphization이 설계적으로 멀티스레딩이 힘듦. 러스트가 최근 시험적으로 개발한 거로 아는데 C++는 갈 길이 먼 듯하다
정말 감사합니다
템플릿 유용한 경우 꽤 있음 예를 들어 태스크 구현할 때 인자값을 타입이나 갯수에 구애받지 않고 자유롭게 넣을 수 있도록 한다던가 아주아주 보편적으로 쓰이는 함수를 작성한다던가 근데 템플릿을 안 쓰면 너무 불편하거나 구조가 필요 이상으로 복잡해진다던가 같은 경우가 아니면 되도록 지양하는게 좋음