¿Cómo pasar y ejecutar una función anónima como parámetro en C ++ 11?

El código que estoy buscando es como seguir.

bool Func1(int Arg1, C++11LambdaFunc Arg2){
    if(Arg1 > 0){
        return Arg2(Arg1);
    }
}

Después usaré este código.

Func1(12, [](int D) -> bool { ... } );