void foo(std::function<void()> &&f){}

int main(){
auto lamda = [](){};
foo(lamda);
}
なぜコンパイルできるの?