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...
Otros Autores: | |
---|---|
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<
- bool>
- 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.