5

I'm reviewing a sample program code and found this line:

auto prerequisite = task<void>([](){});

What is the meaning of those combined parentheses ([](){})

I'm a cpp programmer but do not know advance cpp (c11+) which this Microsoft example is written at. Googling didn't help, and I don't know the name of those operators.

hamavreg
  • 114
  • 7

1 Answers1

13

[](){} is a lambda expression that creates a function object that has non-zero size and does nothing.

This is probably to avoid checking whether prerequisite is valid/exists - it is always valid, but may do nothing.

Maxim Egorushkin
  • 131,725
  • 17
  • 180
  • 271