작성
·
314
0
template <typename T>
Item* FindItem(Item items[], itemCount, T selector)
이렇게 FindItem 의 시그니처가 구성이 되어있는데
T라는게 현재 어떠한 타입이든 올 수 있는 상황인데
Functor가 아니라 그냥 클래스를 만들어 놓고 저기다가 넣어주거나(operator ()를 오버로딩 하지 않은 클래스라던가)
그냥 일반 변수를 넣어주어도 일단은 통과가 되지 않나요?(컴파일 단계에서 에러가 나겠지만)
(이런식으로)
그래서 궁금한게 C#에서는 제네렉 타입에 조건을 where로 걸어 줄수 있는데
현재 C#처럼 FindItem의 T타입을 class라고 c#처럼 where을 걸어 줄수는 없나요?
ex) 신입이 왔는데 사진처럼 FindItem 마지막 인자에다가 기본 자료형 변수를 넣는 경우를 대비해서...
답변 1
0
이런 류의 질문들은 구글링을 해서 답을 도출하셔야 합니다.
https://stackoverflow.com/questions/6251889/type-condition-in-template
여러가지 우회적인 방법이 있긴 하고 C++20에서도 비슷한 문법이 추가되긴 했습니다.
네 감사합니다.