Welcome to the C++ Learning Project! This project is designed to help you learn C++ programming language features from C++11
to C++23
.
This project includes examples and exercises for C++ programming language features, including but not limited to:
C++11
: lambda expressions, range-based for loops, smart pointers, move semantics, thread support.C++14
: binary literals, generic lambdas, return type deduction for functions.C++17
: structured bindings, if-with-initializer, constexpr if, fold expressions, inline variables.C++20
: concepts, ranges, coroutines, spaceship operator, designated initializers.C++23
: designated initializers for aggregates, range-based for loops with index, constexpr std::vector, lambdas in unevaluated contexts.OOP concepts
: classes, inheritance, polymorphism, encapsulation, constructors and destructors, virtual functions.Functional Programming concepts
: functions as first-class objects, lambda expressions, immutability, pure functions, higher-order functions, currying.
- Clone or download the project to your local machine.
- Open the project using a C++ IDE, such as Visual Studio, Eclipse, or Code::Blocks.
- Explore the code in the src folder, which contains examples and exercises for different C++ language features.
- Compile and run the code to see the output and learn from the examples.
Contributions to this project are welcome! If you find a bug, have a suggestion for an improvement, or would like to add an example or exercise for a specific C++ language feature, please submit a pull request.
Here are some resources that you may find helpful when learning C++:
- cplusplus.com
- cppreference.com
- Effective C++ by Scott Meyers
- The C++ Programming Language by Bjarne Stroustrup
- Modern C++ Programming with Test-Driven Development by Jeff Langr
- Object-Oriented Programming in C++ by Robert Lafore
- Functional Programming in C++ by Ivan Cukic
This project is licensed under the MIT License. See the LICENSE file for more information.