dhaumann added inline comments. INLINE COMMENTS
> kossebau wrote in plugin.cpp:196 > Confirmed by experiments. Still not yet found a document where explicitly it > is mentioned that the copy constructor will be invoked to generate a copy of > the object for any captured variables only being of type reference, so if > anyone can point out one which reads this clearly to me, happy to get a > reference to, so I can try to do a copy of that referenced document into my > brain lambda :) Understanding captures becomes simple as soon as you follow what the compiler essentially does for you with the lambda: The lambda function does not capture `[this]`, so behind the scenes the compiler will create for you a free function (with an internal unique function name). This free function will have a local const variable "library". If you write [library] than this local variable will simply be a copy (think of the definition `const QString library = library_from_outer_scope;`. When you write `[&library]` instead, you will get a `const QString &library = library_from_outer_scope;`. Does that clarify when to use `&` or not? :-) PS: If you capture `[this]`, then the compiler will not a create a free function, instead the compiler will create a member function for you (again with internal unique name ....). Looking at lambda functions from this perspective makes this rather simple. REPOSITORY R306 KParts REVISION DETAIL https://phabricator.kde.org/D24262 To: kossebau, dfaure Cc: dhaumann, kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns