반응형
C ++에서 [=]은 무엇을 의미합니까?
나는 무엇을 알고 싶어 [=]
? 다음은 간단한 예입니다.
template <typename T>
std::function<T (T)> makeConverter(T factor, T offset) {
return [=] (T input) -> T { return (offset + input) * factor; };
}
auto milesToKm = makeConverter(1.60936, 0.0);
[]
대신 코드가 어떻게 작동 [=]
합니까?
나는 가정한다
std::function<T (T)>
(T)
인수 및 반환 유형으로 가져 오는 함수 프로토 타입을 의미 T
합니까?
[=]
당신이 언급하고는의 일부 를 캡처 목록 람다 표현. 이것은 람다 식 내부의 코드가 초기화되어 람다가 생성 될 때 사용하는 모든 지역 변수의 복사본을 얻도록 C ++에 알려줍니다. 람다 식을 참조 할 수 있도록이 필요 factor
하고 offset
함수 내 로컬 변수는 어떤.
당신이를 교체 할 경우 [=]
와 []
람다 표현식 내부의 코드는 변수가 무엇인지 알 수 없기 때문에, 당신은 컴파일러 오류가 발생합니다 offset
및 factor
참조하십시오. 이렇게하면 많은 컴파일러가 좋은 진단 오류 메시지를 제공하므로 시도해보고 어떤 일이 발생하는지 확인하십시오!
그것은이다 람다 캡처 목록입니다. 람다에 변수를 사용할 수 있도록합니다. [=]
값으로 또는 [&]
참조로 전달 되는 사본을 사용할 수 있습니다 .
참고 URL : https://stackoverflow.com/questions/34778041/what-does-mean-in-c
반응형
'Programing' 카테고리의 다른 글
JavaScript 파일을 제공 할 때 application / javascript 또는 application / x-javascript를 사용하는 것이 더 좋습니다. (0) | 2020.09.03 |
---|---|
많은 항목을 삭제하는 편안한 방법 (0) | 2020.09.03 |
"기능 플래그"란 무엇입니까? (0) | 2020.09.03 |
프로그래밍 방식으로 자산 카탈로그 액세스 (0) | 2020.09.03 |
파일이 x보다 오래 전에 생성되었는지 bash에서 어떻게 확인합니까? (0) | 2020.09.02 |