질문과 답변

C++ 템플릿 예제 질문입니다 날짜:2024-2-15 9:43:18 조회수:329
작성자 : L0st_P4inting
포인트 : 7
가입일 : 2020-08-08 22:59:31
방문횟수 : 13
글 1개, 댓글 1개
소개 :
작성글 보기
쪽지 보내기
8-1-5. 동일한 알고리즘 조건의 SwapArray의 예시와
8-3-2. 특수화의 Specialization 예시에서
template <class T> 라고 해두셔서
찾아보기론 원래 스트롭스트룹씨가 <class T> 를 밀고 있었는데
혼동이 온다고 typename으로 고쳤다고 하는데
꼭 class T로 써야하는 예외가 있다고 들었습니다.

<typename T>와 <class T>의 차이점이 무엇인가요?
그리고 예시에선 왜 class T로 작성하셨는지도 궁금합니다. 위의 예외 사항 때문인가요? 怨ㅻ빐 꽦씤留뚯넧쐯긽二쇱텧옣留덉궗吏쐯援궡 以뚮쭏 臾몄<由ъ콈똿 썡븯룞留덉궗吏 슱궛肄쒓구꺏 遺궛異쒖옣븞留 嫄곗젣肄쒓구꺏 留덉궗吏 뒪썾뵒떆- 1씤꺏- 솃씠 븞궛異쒖옣留뚮궓 李쎌썝異쒖옣꺏 꽦씤留덉궗吏 | 꽌슱肄쒓구꺏 | 룷泥쒖텧옣留뚮궓 꽌珥덉텧옣꺏-遺泥쒖퐳嫄몄꺏-슱궛異쒖옣留뚮궓-留덉궗吏媛씠뱶 꽦씤븷땲 諛 怨좎뼇異쒖옣븞留 | 룷泥쒖텧옣留뚮궓 | 깭諛깆텧옣꺏 깭諛깆텧옣뿬깮 | 썝二쇱꽦씤留덉궗吏 | 뙆二쇱븞留덈갑 븘以뚮쭏옉꽮뒪 after flowers 룞씤吏 븘봽由ъ뭅끂異 뿬룞깮理쒕㈃留앷 遊됯퀬젋듃

냼븸닾옄二쇱떇 옱뀒겕 씫뼱二쇰뒗 뙆씪읉 硫붿씪 룉踰꾨뒗諛⑸쾿 二쇰옱뀒겕 | 옱뀒겕 뱶 | 삁鍮꾨쭣 꽭듃 냼븸닾옄醫낅쪟 뙆二쇰쭧吏묅쐯媛쒖씤궗뾽옄 異 넻怨꾟쐯苑껋궗吏 뿰삁씤肄붾뵒 二쇰옱깮遺뾽 | 닾옄 떦꽦 寃넗 | 媛긽솕룓 닔닔猷 醫낆옄룉 1뼲 옱뀒겕 諛⑸쾿 | 냽삊 異 씠옄 怨꾩궛湲 | 怨좎닔씡 븣諛 궓옄 異 긽솚 湲곌컙誘멸뎅 뀒겕 異쒕異 긽솚 닾옄 紐⑤뜽궗吏 냼븸닾옄 빋,떊븳뻾 異 긽솚,쟾꽭옄湲덈異 lh 썑옣 二쇰뒗 泥쒗빐닔슃옣닕냼 썝二쇱쟾뿰졊젋듃移 룞뼇쟾옄泥쒖젙紐⑤땲꽣 紐낆젅뿉 궗珥뚮룞깮씠 뵺 궗源뚯떆

목록보기 삭제 수정 신고 스크랩

tempname 5월13일 4:06:20  

모던 C++ 기준으로는 아주 사소한 차이 외에는 차이가 없습니다.
https://stackoverflow.com/questions/2023977/what-is-the-difference-between-typename-and-class-template-parameters의 내용을 인용하였습니다.

1. 템플릿 템플릿 파라미터를 전달할 때 (until C++ 17, 다만 g++ 10.5 버전 기준으로 std=c++98 옵션을 부여해도 컴파일 가능)
예시 코드
template <template <typename, typename> class C, typename T> // C 앞의 class는 typename으로 치환 불가
struct Container {
C<T, std::allocator<T>> container_;
};

int main()
{
Container<std::vector, int> c {};
}

2. class 템플릿을 명시적으로 인스턴스화 할 때
template class Foo<int>;

참고로, 예시로 드신 template <typename T>와 template <class T>는 실제로 아무런 차이가 없습니다.

L0st_P4inting 5월19일 12:10:51  

감사합니다. 질문한지 꽤 되서 답글이 달린줄 모르고 있어서 감사인사가 늦었습니다. 좀 더 찾아보니 중복할때도 차이가 있다고 하네요.


로그인하셔야 댓글을 달 수 있습니다.