dev.log2014. 9. 10. 12:27

C++ 람다가 잘 이해가 안간다면, 다음과 같은 코드를 생각해 보면 된다.


void function()

{

struct functor

{

    ClassX& x;
    int& i;

    functor( ClassX& a, int& b ) : x(a), i(b) {}
    void operator() ( ValueType v ) {  ..... /* code using x & i */ }

};


ClassX x;

int i;

functor f( x, i );


ValueType a;

f(a);

}


위 코드와 '거의' 동등한 일을 다음 코드를 쓰면 컴파일러가 알아서 만들어 준다는 거다.


void function()

{

ClassX x;

int i;

auto f = [&x,&i](ValueType v){ .... /* code using x&i */ };


ValueType a;

f(a);

}


Posted by uhm