캡처 목록을 좁힌다
[&]나 [=] 대신 필요한 이름만 적으면 수명과 의존성이 보인다.
람다 표현식은 알고리즘 호출부에 조건과 변환을 붙여 준다. 캡처 방식과 수명이 맞지 않으면 짧은 코드가 긴 버그를 만든다.
[&]나 [=] 대신 필요한 이름만 적으면 수명과 의존성이 보인다.
즉시 실행되는 알고리즘 predicate인지, 나중에 저장되어 호출될 callback인지 구분한다.
람다 본문이 여러 책임을 가지면 이름 있는 함수나 함수 객체로 뺀다.
const int limit = 80;
auto passed = std::count_if(scores.begin(), scores.end(), [limit](int score) {
return score >= limit;
});