C++ 아이콘 제작자: Darius Dan - Flaticon
template <typename T, typename = decltype(std::declval<T>().func())>
void test(const T& t) {}
template <typename T, typename = std::enable_if_t<std::is_integral_v<decltype(std::declval<T>().func())>>>
void test(const T& t) {}
이러면 전달받은 T에 func() 이라는 함수가 있어야 하고 리턴 타입이 int형이여야 잘 작동한다.
template <typename T, typename = std::enable_if_t<std::is_integral_v<decltype(std::declval<T>().func())>>
, typename = std::enable_if_t<std::is_class<decltype(std::declval<T>().func())>::type>>
void test(const T& t) {}
개인 공부 기록용 블로그입니다.
틀린 부분 있으다면 지적해주시면 감사하겠습니다!!