Como passar e executar a função anônima como parâmetro no C ++ 11?

O código que estou procurando é como seguir.

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

Mais tarde eu vou estar usando esse código.

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

questionAnswers(3)

yourAnswerToTheQuestion