forked from qt-creator/qt-creator
Coding style: Avoid empty round brackets in lambdas
Remove outdated rules. Use QList instead of QVector. Change-Id: I11ea6be09080ddccfdcfc3d09f79cbeff448659e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -741,43 +741,28 @@
|
|||||||
|
|
||||||
\section3 Lambdas
|
\section3 Lambdas
|
||||||
|
|
||||||
When using lambdas, note the following:
|
|
||||||
|
|
||||||
\list
|
|
||||||
\li You do not have to explicitly specify the return type. If you are not using one
|
|
||||||
of the previously mentioned compilers, do note that this is a C++14 feature and you
|
|
||||||
might need to enable C++14 support in your compiler.
|
|
||||||
\code
|
|
||||||
[]() {
|
|
||||||
Foo *foo = activeFoo();
|
|
||||||
return foo ? foo->displayName() : QString();
|
|
||||||
});
|
|
||||||
\endcode
|
|
||||||
|
|
||||||
\li If you use static functions from the class that the lambda is located in, you have to
|
|
||||||
explicitly capture \c this. Otherwise it does not compile with g++ 4.7 and earlier.
|
|
||||||
\code
|
|
||||||
void Foo::something()
|
|
||||||
{
|
|
||||||
...
|
|
||||||
[this]() { Foo::someStaticFunction(); }
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
-NOT-
|
|
||||||
|
|
||||||
void Foo::something()
|
|
||||||
{
|
|
||||||
...
|
|
||||||
[]() { Foo::someStaticFunction(); }
|
|
||||||
...
|
|
||||||
}
|
|
||||||
\endcode
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
Format the lambda according to the following rules:
|
Format the lambda according to the following rules:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
\li When the lambda neither takes arguments nor specifies a return type,
|
||||||
|
drop round brackets.
|
||||||
|
\code
|
||||||
|
[] { ... lambda body ... }
|
||||||
|
|
||||||
|
-NOT-
|
||||||
|
|
||||||
|
[]() { ... lambda body ... }
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\li Glue square brackets with round brackets when defining a lambda.
|
||||||
|
\code
|
||||||
|
[](int a) { ... lambda body ... }
|
||||||
|
|
||||||
|
-NOT-
|
||||||
|
|
||||||
|
[] (int a) { ... lambda body ... }
|
||||||
|
\endcode
|
||||||
|
|
||||||
\li Place the capture-list, parameter list, return type, and opening brace on the first line,
|
\li Place the capture-list, parameter list, return type, and opening brace on the first line,
|
||||||
the body indented on the following lines, and the closing brace on a new line.
|
the body indented on the following lines, and the closing brace on a new line.
|
||||||
\code
|
\code
|
||||||
@@ -795,7 +780,7 @@
|
|||||||
\li Place a closing parenthesis and semicolon of an enclosing function call on the same line
|
\li Place a closing parenthesis and semicolon of an enclosing function call on the same line
|
||||||
as the closing brace of the lambda.
|
as the closing brace of the lambda.
|
||||||
\code
|
\code
|
||||||
foo([]() {
|
foo([] {
|
||||||
something();
|
something();
|
||||||
});
|
});
|
||||||
\endcode
|
\endcode
|
||||||
@@ -866,7 +851,7 @@
|
|||||||
Use initializer lists to initialize containers, for example:
|
Use initializer lists to initialize containers, for example:
|
||||||
|
|
||||||
\code
|
\code
|
||||||
const QVector<int> values = {1, 2, 3, 4, 5};
|
const QList<int> values = {1, 2, 3, 4, 5};
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
\section3 Initialization with Curly Brackets
|
\section3 Initialization with Curly Brackets
|
||||||
@@ -878,7 +863,7 @@
|
|||||||
class Values // the following code is quite useful for test fixtures
|
class Values // the following code is quite useful for test fixtures
|
||||||
{
|
{
|
||||||
float floatValue = 4; // prefer that for simple types
|
float floatValue = 4; // prefer that for simple types
|
||||||
QVector<int> values = {1, 2, 3, 4, integerValue}; // prefer that syntax for initializer lists
|
QList<int> values = {1, 2, 3, 4, integerValue}; // prefer that syntax for initializer lists
|
||||||
SomeValues someValues{"One", 2, 3.4}; // not an initializer_list
|
SomeValues someValues{"One", 2, 3.4}; // not an initializer_list
|
||||||
SomeValues &someValuesReference = someValues;
|
SomeValues &someValuesReference = someValues;
|
||||||
ComplexType complexType{values, otherValues} // constructor call
|
ComplexType complexType{values, otherValues} // constructor call
|
||||||
|
Reference in New Issue
Block a user