#include <functional>

struct A
{
    A(int)
    {}
};

void f(std::function<void(void*)> fn)
{
    A a(0);
    fn(&a);
}

int main()
{
    int n = 0;
    auto fn = [&](void* p)
    {
        //
        // error C2664: 'void f(void (__cdecl *)(void *))' : 
        // cannot convert parameter 1 from 
        // 'main::<lambda_b20f735b061d78dbb0f2f653ecbb482f>' 
        // to 'void (__cdecl *)(void *)'
        //
        new (p) A(n);
    };

    f(fn);
}
