travis CI fixes
parent
d45496ff5e
commit
986402298a
|
@ -12698,7 +12698,7 @@ consider `gsl::finally()` as a cleaner and more reliable alternative to `goto ex
|
|||
|
||||
switch(x){
|
||||
case 1 :
|
||||
while(/* some condition */){
|
||||
while (/* some condition */) {
|
||||
//...
|
||||
break;
|
||||
} //Oops! break switch or break while intended?
|
||||
|
@ -12715,8 +12715,8 @@ Often, a loop that requires a `break` is a good candidate for a function (algori
|
|||
void use1(){
|
||||
std::vector<T> vec = {/* initialized with some values */};
|
||||
T value;
|
||||
for(const T item : vec){
|
||||
if(/* some condition*/){
|
||||
for (const T item : vec) {
|
||||
if (/* some condition*/) {
|
||||
value = item;
|
||||
break;
|
||||
}
|
||||
|
@ -12725,14 +12725,14 @@ Often, a loop that requires a `break` is a good candidate for a function (algori
|
|||
}
|
||||
|
||||
//BETTER: create a function and return inside loop
|
||||
T search(const std::vector<T> &vec){
|
||||
for(const T &item : vec){
|
||||
if(/* some condition*/) return item;
|
||||
T search(const std::vector<T> &vec) {
|
||||
for (const T &item : vec) {
|
||||
if (/* some condition*/) return item;
|
||||
}
|
||||
return T(); //default value
|
||||
}
|
||||
|
||||
void use2(){
|
||||
void use2() {
|
||||
std::vector<T> vec = {/* initialized with some values */};
|
||||
T value = search(vec);
|
||||
/* then do something with value */
|
||||
|
@ -12740,15 +12740,15 @@ Often, a loop that requires a `break` is a good candidate for a function (algori
|
|||
|
||||
Often, a loop that uses `continue` can equivalently and as clearly be expressed by an `if`-statement.
|
||||
|
||||
for(int item : vec){ //BAD
|
||||
if(item%2 == 0) continue;
|
||||
if(item == 5) continue;
|
||||
if(item > 10) continue;
|
||||
for (int item : vec) { //BAD
|
||||
if (item%2 == 0) continue;
|
||||
if (item == 5) continue;
|
||||
if (item > 10) continue;
|
||||
/* do something with item */
|
||||
}
|
||||
|
||||
for(int item : vec){ //GOOD
|
||||
if(item%2 != 0 && item != 5 && item <= 10){
|
||||
for (int item : vec) { //GOOD
|
||||
if (item%2 != 0 && item != 5 && item <= 10) {
|
||||
/* do something with item */
|
||||
}
|
||||
}
|
||||
|
@ -14972,21 +14972,20 @@ There is no explicit locking and both correct (value) return and error (exceptio
|
|||
return value;
|
||||
}
|
||||
|
||||
|
||||
void async_example()
|
||||
{
|
||||
try
|
||||
{
|
||||
auto v1 = std::async(std::launch::async, read_value, "v1.txt");
|
||||
auto v1 = std::async(std::launch::async, read_value, "v1.txt");
|
||||
auto v2 = std::async(std::launch::async, read_value, "v2.txt");
|
||||
std::cout << v1.get() + v2.get() << '\n';
|
||||
}
|
||||
catch (std::ios_base::failure & fail)
|
||||
catch (std::ios_base::failure & fail)
|
||||
{
|
||||
// handle exception here
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
##### Note
|
||||
|
||||
Unfortunately, `async()` is not perfect.
|
||||
|
@ -19201,6 +19200,7 @@ to files that includes it or in scenarios where the different search algorithm i
|
|||
#include "helpers.h" // A project specific file, use "" form
|
||||
|
||||
##### Note
|
||||
|
||||
Failing to follow this results in difficult to diagnose errors due to picking up the wrong file by incorrectly specifying the scope when it is included.
|
||||
|
||||
Library creators should put their headers in a folder and have clients include those files using the relative path `#include <some_library/common.h>`
|
||||
|
@ -20282,9 +20282,11 @@ and errors (when we didn't deal correctly with semi-constructed objects consiste
|
|||
// main problem: constructor does not fully construct
|
||||
Picture(int x, int y)
|
||||
{
|
||||
mx = x; // also bad: assignment in constructor body rather than in member initializer
|
||||
mx = x; // also bad: assignment in constructor body
|
||||
// rather than in member initializer
|
||||
my = y;
|
||||
data = nullptr; // also bad: constant initialization in constructor rather than in member initializer
|
||||
data = nullptr; // also bad: constant initialization in constructor
|
||||
// rather than in member initializer
|
||||
}
|
||||
|
||||
~Picture()
|
||||
|
@ -20466,7 +20468,7 @@ Reference sections:
|
|||
Libraries used have to have been approved for mission critical applications.
|
||||
Any similarities to this set of guidelines are unsurprising because Bjarne Stroustrup was an author of JSF++.
|
||||
Recommended, but note its very specific focus.
|
||||
* [_MISRA C++ 2008: Guidelines for the use of the C++ language in critical systems_] (https://www.misra.org.uk/Buyonline/tabid/58/Default.aspx).
|
||||
* [MISRA C++ 2008: Guidelines for the use of the C++ language in critical systems](https://www.misra.org.uk/Buyonline/tabid/58/Default.aspx).
|
||||
* [Mozilla Portability Guide](https://developer.mozilla.org/en-US/docs/Mozilla/C%2B%2B_Portability_Guide).
|
||||
As the name indicates, this aims for portability across many (old) compilers.
|
||||
As such, it is restrictive.
|
||||
|
|
|
@ -52,6 +52,7 @@ ASIC
|
|||
asio
|
||||
AST
|
||||
async
|
||||
AUTOSAR
|
||||
'B'
|
||||
b2
|
||||
BDE
|
||||
|
@ -320,6 +321,7 @@ Meyers96
|
|||
Meyers97
|
||||
microbenchmarks
|
||||
middleware
|
||||
MISRA
|
||||
mixin
|
||||
mixins
|
||||
mnemonizes
|
||||
|
@ -598,6 +600,7 @@ UTF
|
|||
util
|
||||
v's
|
||||
v1
|
||||
v17
|
||||
v2
|
||||
va
|
||||
ValueType
|
||||
|
|
Loading…
Reference in New Issue