But now that has me thinking — did I do this correctly?
Yes you did.
Is there a better way in C++11 or C++14 to tell the compiler that I want it to immediately invoke a lambda I’ve written?
Not that I know of. A lambda is also just a function object, so you need to have a ()
to call it, there is no way around it (except of course some function that invokes the lambda like std::invoke
).
If you want you can drop the ()
after the capture list, because your lambda doesn’t take any parameters.
Or is appending an empty
()
like I did the usual way to do this?
Yes, it is the shortest way. As said before, std::invoke
would also work instead, but it requires more typing. I would say a direct call with ()
is the usual way it is done.