인프런 커뮤니티 질문&답변

starkshn님의 프로필 이미지
starkshn

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

콜백 함수

functor질문 T질문

작성

·

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

Rookiss님의 프로필 이미지
Rookiss
지식공유자

이런 류의 질문들은 구글링을 해서 답을 도출하셔야 합니다.

https://stackoverflow.com/questions/6251889/type-condition-in-template

여러가지 우회적인 방법이 있긴 하고 C++20에서도 비슷한 문법이 추가되긴 했습니다.

starkshn님의 프로필 이미지
starkshn
질문자

네 감사합니다.

starkshn님의 프로필 이미지
starkshn

작성한 질문수

질문하기