1. whatthefuck

    whatthefuck New Member

    Joined:
    10 Apr 2011
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Помогите, как передать лямбда функцию как параметр функции, принимающей функцию?!

    Code:
    void ExecFunc(void (*f)())
    {
    	f();
    }
    
    int main()
    {
    	ExecFunc([]() -> void {printf("Hello World!");}());
    }
    Этот код не работает!
     
  2. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Конкретно в VS 2010 пока что никак, но в будущем будет доступно. Пока что можно сделать так:

    PHP:
    #include <stdio.h>

    template<typename T>
    void ExecFunc(T f)
    {
        
    f();
    }

    int main()
    {
        
    ExecFunc( [](){printf("Hello World!");} );
        return 
    0;
    }
     
  3. whatthefuck

    whatthefuck New Member

    Joined:
    10 Apr 2011
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Спасибо)