C++11 에서 새로 지원하는 이름 없는 함수 객체
C++ 함수 객체를 간단하게 생성할 수 있다.
[captures] (params) -> ret { body }
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
suing namespace std;
int main(void)
{
[] {}; // 인자가 없고 return type도 명확(void) 아무것도 리턴하지 않고 아무것도 안함
// void f() {} 의 개념과 비슷하다.
[] {} (); // 람다함수를 호출하려면 ()
[] {} -> void {} (); // 위와 동일한 동작
[] (double a) { cout << a * a << endl; } (3.0); // 3.0 이 a로 전달되는 것으로 이해
return 0
}
함수 객체 : () 연산자를 오보로딩하여 만든 클래스
...
int main(void)
{
...
sort(v.begin(), v.end(), [](const Person& p1, const Person& p2){
return p1.name < p2.name;});
}