That is the capture-list of the lambda. It is capturing the variable this
(pointer) and the variable self
declared one line above.
[...](...){...}
// A B C
The above is simplified syntax for the lambda in your code. A
is the capture-list mentioned above (used to "capture" variables from the current scope). B
is the argument list (just like in a function) and C
is the body (again, like a function).