Modern C++ programming cookbook over 100 recipes to help you overcome your difficulties with C++ programming and gain a deeper understanding of the working of modern C++

Over 100 recipes to help you overcome your difficulties with C++ programming and gain a deeper understanding of the working of modern C++ About This Book Explore the most important language and library features of C++17, including containers, algorithms, regular expressions, threads, and more, Get g...

Descripción completa

Detalles Bibliográficos
Otros Autores: Bancila, Marius, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, England ; Mumbai, [India] : Packt 2017.
Edición:1st edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630234306719
Tabla de Contenidos:
  • Cover
  • Copyright
  • Credits
  • About the Author
  • About the Reviewer
  • www.PacktPub.com
  • Customer Feedback
  • Table of Contents
  • Preface
  • Chapter 1: Learning Modern Core Language Features
  • Introduction
  • Using auto whenever possible
  • How to do it...
  • How it works...
  • See also
  • Creating type aliases and alias templates
  • How to do it...
  • How it works...
  • Understanding uniform initialization
  • Getting ready
  • How to do it...
  • How it works...
  • There's more
  • See also
  • Understanding the various forms of non-static member initialization
  • How to do it...
  • How it works...
  • Controlling and querying object alignment
  • Getting ready
  • How to do it...
  • How it works...
  • Using scoped enumerations
  • How to do it...
  • How it works...
  • Using override and final for virtual methods
  • Getting ready
  • How to do it...
  • How it works...
  • Using range-based for loops to iterate on a range
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Enabling range-based for loops for custom types
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using explicit constructors and conversion operators to avoid implicit conversion
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using unnamed namespaces instead of static globals
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using inline namespaces for symbol versioning
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using structured bindings to handle multi-return values
  • Getting ready
  • How to do it...
  • How it works...
  • Chapter 2: Working with Numbers and Strings
  • Introduction
  • Converting between numeric and string types
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Limits and other properties of numeric types
  • Getting ready.
  • How to do it...
  • How it works...
  • Generating pseudo-random numbers
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Initializing all bits of internal state of a pseudo-random number generator
  • Getting ready
  • How to do it...
  • How it works...
  • Creating cooked user-defined literals
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Creating raw user-defined literals
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using raw string literals to avoid escaping characters
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Creating a library of string helpers
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Verifying the format of a string using regular expressions
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Parsing the content of a string using regular expressions
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Replacing the content of a string using regular expressions
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using string_view instead of constant string references
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Chapter 3: Exploring Functions
  • Introduction
  • Defaulted and deleted functions
  • Getting started
  • How to do it...
  • How it works...
  • Using lambdas with standard algorithms
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Using generic lambdas
  • Getting started
  • How to do it...
  • How it works...
  • See also
  • Writing a recursive lambda
  • Getting ready
  • How to do it...
  • How it works...
  • Writing a function template with a variable number of arguments
  • Getting ready
  • How to do it...
  • How it works...
  • See also.
  • Using fold expressions to simplify variadic function templates
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Implementing higher-order functions map and fold
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Composing functions into a higher-order function
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Uniformly invoking anything callable
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Chapter 4: Preprocessor and Compilation
  • Introduction
  • Conditionally compiling your source code
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using the indirection pattern for preprocessor stringification and concatenation
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Performing compile-time assertion checks with static_assert
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Conditionally compiling classes and functions with enable_if
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Selecting branches at compile time with constexpr if
  • Getting ready
  • How to do it...
  • How it works...
  • Providing metadata to the compiler with attributes
  • How to do it...
  • How it works...
  • Chapter 5: Standard Library Containers, Algorithms, and Iterators
  • Introduction
  • Using vector as a default container
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Using bitset for fixed-size sequences of bits
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Using vector&lt
  • bool&gt
  • for variable-size sequences of bits
  • Getting ready...
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Finding elements in a range.
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Sorting a range
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Initializing a range
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using set operations on a range
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using iterators to insert new elements in a container
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Writing your own random access iterator
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Container access with non-member functions
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Chapter 6: General Purpose Utilities
  • Introduction
  • Expressing time intervals with chrono::duration
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Measuring function execution time with a standard clock
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Generating hash values for custom types
  • Getting ready
  • How to do it...
  • How it works...
  • Using std::any to store any value
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using std::optional to store optional values
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using std::variant as a type-safe union
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Visiting a std::variant
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Registering a function to be called when a program exits normally
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using type traits to query properties of types
  • Getting ready
  • How to do it.
  • How it works...
  • There's more...
  • See also
  • Writing your own type traits
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using std::conditional to choose between types
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Chapter 7: Working with Files and Streams
  • Introduction
  • Reading and writing raw data from/to binary files
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Reading and writing objects from/to binary files
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using localized settings for streams
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using I/O manipulators to control the output of a stream
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using monetary I/O manipulators
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Using time I/O manipulators
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Working with filesystem paths
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Creating, copying, and deleting files and directories
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Removing content from a file
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Checking the properties of an existing file or directory
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Enumerating the content of a directory
  • Getting ready
  • How to do it...
  • How it works...
  • There's more...
  • See also
  • Finding a file
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Chapter 8: Leveraging Threading and Concurrency
  • Introduction
  • Working with threads
  • Getting ready
  • How to do it...
  • How it works...
  • See also
  • Handling exceptions from thread functions.
  • Getting ready.