On Wed, Jan 10, 2024 at 02:58:03PM -0500, Jason Merrill via Gcc wrote: > What formatting style do we want for non-trivial lambdas in GCC sources? > I'm thinking the most consistent choice would be > > auto l = [&] (parms) // space between ] ( > { // brace on new line, indented two spaces > return stuff; > };
Sure, why not. Consistency is what matters. Thus far we seem to have been very inconsistent. ;) > By default, recent emacs lines up the { with the previous line, like an > in-class function definition; I talked it into the above indentation with > > (defun lambda-offset (elem) > (if (assq 'inline-open c-syntactic-context) '+ 0)) > (add-to-hook 'c++-mode-hook '(c-set-offset 'inlambda 'lambda-offset)) > > I think we probably want the same formatting for lambdas in function > argument lists, e.g. > > algorithm ([] (parms) > { > return foo; > }); And what about lambdas in conditions: if (foo () && [&] (params) mutable { return 42; } ()) should the { go just below [? Marek