2017-01-07 2 views
-2

다음 소스 코드를 이해하려고합니다.lambda :: _ 1은 무엇을 의미합니까?

lambda::bind(&internal::on_accept, lambda::_1) 

lambda::_1의 의미는 무엇입니까?

+3

'_1'은 (는) 변수 이름으로 유효합니다. – usr2564301

+0

'_1'이라는 이름의'람다 '입니다. –

+0

http://en.cppreference.com/w/cpp/utility/functional/placeholders – jtbandes

답변

1

여기서 누락 된 컨텍스트가 있지만 bind의 경험에서 _1은 함수를 호출 할 때 사용할 첫 번째 인수를 참조하는 데 사용되는 것으로 가정합니다. func("abc")을 호출하면 on_accept("abc")이 호출됩니다. 예를 lambda::bind(&internal::on_accept, lambda::_1, true, lambda::_2)foo(1, 2) 호출 할 때 클래스 또는 네임 스페이스 중 하나입니다 on_accept(1, true, 2)

2

lambda에 대한 호출이 발생할 것이라고 함수 초래에 대한 바인딩은, 인수 및 추가 매개 변수를 매핑 할 수 있습니다. _1은 해당 클래스/네임 스페이스의 멤버입니다. 그것은 변수이거나 함수 일 수 있습니다.

표준 라이브러리에는 lambda의 이름으로 클래스가 없습니다.

lambda 및 그 구성원에 대한 자세한 내용은 해당 정의 및 설명서를 참조하십시오.

관련 문제