C++ Skills

Core C++ Skills

  • Object-Oriented Programming (OOP) Concepts
  • Data Types, Variables, and Operators
  • Control Statements (Loops, Conditionals)
  • Memory Management (Pointers, Dynamic Allocation)
  • Templates and Generics
  • Exception Handling and Error Management
  • Standard Template Library (STL)
  • Multithreading and Concurrency

C++ 11

  • Auto Keyword and Type Inference
  • Range-Based for Loops
  • Smart Pointers (e.g., `std::unique_ptr`, `std::shared_ptr`)
  • Lambda Expressions
  • Move Semantics and Rvalue References
  • Thread Support Library
  • Uniform Initialization
  • Static Assertions

C++ 14

  • Generic Lambdas
  • Return Type Deduction
  • Relaxed constexpr Restrictions
  • Binary Literals
  • Digit Separators
  • Improved Type Deduction
  • Enhanced User-Defined Literals
  • decltype(auto)

C++ 17

  • Structured Bindings
  • Optional and Variant Types
  • Inline Variables
  • Fold Expressions
  • Parallel Algorithms
  • std::string_view
  • Filesystem Library
  • Improved Template Argument Deduction

C++ 20

  • Concepts
  • Ranges Library
  • Coroutines
  • Calendar and Time Zone Library
  • Immediate Functions (consteval)
  • Expanded constexpr Capabilities
  • Three-Way Comparison Operator (<=>)
  • Modules

Advanced C++ Techniques

  • Template Metaprogramming
  • CRTP (Curiously Recurring Template Pattern)
  • Policy-Based Design
  • Static Polymorphism
  • Advanced Memory Management Techniques
  • Code Optimization Techniques
  • Embedded Systems Programming
  • Multithreaded Programming Patterns

C++ Libraries and Tools

  • Boost Libraries
  • Qt Framework
  • OpenCV for Computer Vision
  • Eigen for Linear Algebra
  • Google Test for Unit Testing
  • CMake for Build Management
  • Valgrind for Memory Debugging
  • AddressSanitizer for Detecting Memory Errors

Testing

  • Google Test (gtest) for Unit Testing
  • Google Mock (gmock) for Mocking Dependencies
  • Catch2 for Unit Testing
  • Boost.Test for Unit Testing
  • Test-Driven Development (TDD) Practices
  • Integration Testing with C++
  • Code Coverage Tools (e.g., gcov)
  • SonarQube for Static Code Analysis