As long as the lambda doesn't use capture clause (i.e. doesn't capture variables from above it), it can be used as a function pointer. VC compiler internally generates anonymous functions with different calling convention so that it can be used without issues.