• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

functor질문 T질문

22.08.23 11:54 작성 조회수 225

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에서도 비슷한 문법이 추가되긴 했습니다.

starkshn님의 프로필

starkshn

질문자

2022.08.23

네 감사합니다.