2014-06-15 3 views
0

일반 또는 템플릿 함수에 대해 std :: function을 정의하는 방법은 무엇입니까? 예를 들어, 우리는 제네릭 함수에 대해 std :: function을 정의하는 방법은 무엇입니까?

std::function<bool(int a)> f = [](int a){return a < 0;}; 

당신은하지 않습니다 다음

std::function<bool(auto a)> f = [](auto a){return a < 0;}; 
+0

람다를 저장하기 위해서 단지'auto'가 아닌'std :: function'을 사용하는 것이 엄격히 필요합니까? – ghostofstandardspast

+0

달성하려는 목표는 무엇입니까? '< '연산자를 지원하는 각각의 타입에 대해 0에 대한 비교를 생성 하시겠습니까? –

+1

게다가 구문이 잘못되었습니다. 'std :: function lessThanZero = [] (int a) {return a <0;}; ' –

답변

1

같은 다른 인수 유형을 일반화하는 방법 할 수 있습니다. 그러한 구조는 전체 C++ 컴파일러와 비슷한 형태가 std::function에 의해 지워지도록 요구할 것인데, 이는 대부분의 어플리케이션에 과도하게 보인다.

확률은 실제로 강한 것은 아닙니다.

ypu에 고정 된 인수 유형 집합이있는 경우 해결 방법이 충분합니다. 모든 유형에 대해? 아니.

관련 문제