diff --git a/CPP17.md b/CPP17.md index c824bcc..56cc2f0 100644 --- a/CPP17.md +++ b/CPP17.md @@ -150,6 +150,16 @@ S x2 = S{123}; // mov eax, dword ptr [.L_ZZ4mainE2x2] // .L_ZZ4mainE2x2: .long 123 ``` +It can also be used to declare and define a static member variable, such that it does not need to be initialized in the source file. +```c++ +struct S { + S() : id(count++) {} + ~S() {count--;} + int id; + static inline int count{0}; // declare and initialize count to 0 within the class +}; +``` + ### Nested namespaces Using the namespace resolution operator to create nested namespace definitions. ```c++ @@ -393,7 +403,7 @@ The new `std::filesystem` library provides a standard way to manipulate files, d Here, a big file is copied to a temporary path if there is available space: ```c++ const auto bigFilePath {"bigFileToCopy"}; -if (std::filesystem::exists(bigFilePath)) { +if (std::filesystem::exists(bigFilePath)) { const auto bigFileSize {std::filesystem::file_size(bigFilePath)}; std::filesystem::path tmpPath {"/tmp"}; if (std::filesystem::space(tmpPath).available > bigFileSize) { diff --git a/README.md b/README.md index 69a5e01..8531ff2 100644 --- a/README.md +++ b/README.md @@ -435,6 +435,16 @@ S x2 = S{123}; // mov eax, dword ptr [.L_ZZ4mainE2x2] // .L_ZZ4mainE2x2: .long 123 ``` +It can also be used to declare and define a static member variable, such that it does not need to be initialized in the source file. +```c++ +struct S { + S() : id(count++) {} + ~S() {count--;} + int id; + static inline int count{0}; // declare and initialize count to 0 within the class +}; +``` + ### Nested namespaces Using the namespace resolution operator to create nested namespace definitions. ```c++ @@ -678,7 +688,7 @@ The new `std::filesystem` library provides a standard way to manipulate files, d Here, a big file is copied to a temporary path if there is available space: ```c++ const auto bigFilePath {"bigFileToCopy"}; -if (std::filesystem::exists(bigFilePath)) { +if (std::filesystem::exists(bigFilePath)) { const auto bigFileSize {std::filesystem::file_size(bigFilePath)}; std::filesystem::path tmpPath {"/tmp"}; if (std::filesystem::space(tmpPath).available > bigFileSize) { @@ -1624,7 +1634,7 @@ void foo(bool clause) { /* do something... */ } std::vector threadsVector; threadsVector.emplace_back([]() { - // Lambda function that will be invoked + // Lambda function that will be invoked }); threadsVector.emplace_back(foo, true); // thread will run foo(true) for (auto& thread : threadsVector) {