나는 다음과 같은 일반적인 합계 함수를 작성하고 싶어하지만 템플릿 구문하지만 람다 구문 :C++에서 가변 일반 람다를 사용하여 합계를 계산하는 방법은 무엇입니까?
: 일반 람다 템플릿에 매핑되기 때문에template<typename T>
auto Sum(T lastSummand)
{
return lastSummand;
}
template<typename T, typename... Ts>
auto Sum(T firstSummand, Ts... restSummands)
{
return firstSummand + Sum(restSummands...);
}
이 같은 일을 할 수 있어야한다
auto sum = [](auto firstSummand, auto... restSummands) { ... };
하지만 람다를 사용하여 재귀를 수행하는 방법을 알 수 없습니다. 이 위치와 다른 위치에서 검색해도 많은 것을 얻지 못했습니다.
이 당신이 필요로하는 단순한 이유에 대해 작동하지 않습니다 : 당신이 주어진 매개 변수를 산술 유형 모두 즉시 확인하려는 경우 다음과 같이
, 당신은 부울 트릭을 사용할 수 있습니다 최종 사건을 다루기위한 전문화. 최소한 두 개의 람다가 필요합니다. –
요즘 C++이 어디로 가고 싶지 않습니다. –
@Sam Varshavichik : 두 개의 람다를 어떻게 사용합니까? –