- L value references
- pointer semantics
- reference semantics
autotype deductionautox = exprauto&y = exprauto&&z = expr (forwarding reference)
- reference collapsing
- trailing return type
- auto return type
decltypespecifier type deduction- decltype(identifier)
- decltype(expression)
- unevaluated context (İşlem kodu üretilmeyen bağlam)
- default arguments
- maximal munch
- (target type) Cstyle cast
- static_cast
- const_cast
- reinterpret_cast
- dynamic_cast
- old-school(conventional) enum's problems
- incomplete type
- scoped & unscoped enums
- constexpr variables
- constexpr functions
- inline functions
- inline expansion optimization
- One Definition Rule - (ODR)
staticvsinlinefunctions
- inline variables C++17
- function signature
- Function Overload Resolution
- variadic conversion
- user-defined conversion
- standart conversion
- exact match
- promotion
- conversion
- name decoration(mangling)
- name lookup - context control - access control
- qualified names scopes
- non-static data members
- member functions
- access specifiers
thispointerconstmember functionsmutablekeyword- constructor & destructor
- RAII idiom (Resource Acquisition Is Initialization)
- special member functions
- Not declared special member functions
- User declared special member functions
- User declared defined / to be defined
- User declared defaulted
- User declared deleted
- Implicitly declared special member functions
- Implicitly declared defaulted
- Implicitly declared deleted
- Storage Classes(Lifetime)
- Static storage class
- global variables
- static local variables
- Automatic storage class
- function's local variables
- local and non-static variables in block scopes
- Dynamic storage class
- new/delete keyword
- Static storage class
- implicitly declared default ctor
- constructor(member) initializer list - (MIL)
- deep and shallow copy in copy constructor
- deep and shallow copy in copy assignment
- move members
- moved-from state
- default member initializer
- delegated constructor
- temporary objects
- conversion constructor
- explicit constructor
- copy elision
- Mandatory Copy Elision scenarios
- Named Return Value Optimization - (NRVO)
- pessimistic move
- reference qualifiers (Modern C++)
frienddeclared global(free) functionfrienddeclared other class's specific member functionfrienddeclared other class(all of other classes member functions)
- global and member operator overload functions
constcorrectness for operator overloading- overloading assignment operators
- overloading arithmetic operators
- overloading increment and decrement operators
[[nodiscard]]attribute- overloading subscript operator
- overloading dereferencing & arrow operators
- overloading function call operator
- overloading type-cast operator function
- enum type's global operator overload functions
- static member variable
inlinestatic member variableconstexprstatic member variable- static member functions
- member function pointer
- named constructor idiom
- dynamic object only class
- singleton design pattern
- composition / containment
- special member functions incomposition
- nested types
- Pimpl idiom (pointer to implementation)
usingdeclarationusing namespace(directive) declaration- unnamed namespace
- namespace alias
- argument dependent lookup - (ADL)
inlinenamespace- versioning with
inlinenamespaces
std::stringclass interface- constexpr static data member
std::string::npos - search member functions of
std::stringclass - remove-erase idiom
std::string_viewclass (C++ 17)
- inheritance and name lookup
- inheritance and access control
- special member functions in inheritance
usingdeclerations in inheritance- inherited constructor
- run-time polymorphism
- virtual dispatch mechanism
- non-virtual interface idiom - (NVI)
virtualconstuctor(clone) idiom- variant return type (covariance)
- virtual destructor
finalkeyword- run time type identification(information) - (RTTI)
dynamic_castoperatortypeidoperator
- private inheritance
- empty base optimization - (EBO)
- restricted polymorphism
- protected inheritance
- multiple inheritence
- dreadful diamond on derivation - (DDD)
- virtual inheritance
- stack unwinding
- rethrow statement
- exception dispatcher
- translating an exception
- exception guarantees
noexceptkeywordnoexceptspecifiernoexceptoperator
- constructors & exceptions
- some exception classes
std::bad_allocstd::bad_caststd::bad_typeid
- function try block
- template argument deduction
- trailing return type
- member function template
- class templates
- class template argument deduction (CTAD)
- explicit(full) specialization
- partial specialization
- alias templates
- typedef declerations
- using declerations
- default template parameter
- variable templates
- SFINAE(Substitution Failure Is Not An Error)
- variadic templates
- pack expansion
- compile-time recursivity (eksiltme teknigi)
- std::initializer_list technique
- fold expressions (C++17)
- unary fold (left, right)
- binary fold (left, right)
- static if (C++17)
- standart function objects(standart functors)
std::less,std::greater,std::plus,std::negateetc
- lambda expressions(functions)
- generalized lambda expression
- lambda init capture (C++14)
- positive lambda idiom
- immediately invoked function(lambda) expression (IIFE) idiom
std::hashstd::reference_wrapper- member function pointers
- data member pointers
std::functionstd::invoke- function adaptors
std::bindstd::mem_fnstd::not_fn
- iterator categories
- const_iterator - iterator adaptor
- iterator manipulator functions
std::advance- tag dispatch technique
std::distancestd::next,std::prevstd::iter_swap
std::reverse_iterator- iterator adaptor- iterator invalidation
std::ostream_iteratorclassstd::move_iteratoriterator adaptor
std::copy,std::copy_ifstd::sortstd::find,std::find_ifstd::back_inserter,std::front_inserterstd::count,std::count_ifstd::transformstd::for_eachstd::all_of,std::any_of,std::none_ofstd::max_elementstd::minmax_elementstd::replace,std::replace_ifstd::reverse,std::reverse_copystd::remove_copy,std::remove_copy_ifstd::lexicographical_comparestd::generate_nstd::remove,std::remove_if- remove-erase idiom
std::unique- sorting algorithms
std::sortstd::stable_sortstd::partial_sort,std::partial_sort_copystd::nth_elementstd::partitionstd::stable_partitionstd::partition_copystd::is_sorted,std::is_sorted_until
std::make_heap,std::pop_heap,std::push_heap,std::sort_heapstd::lower_bound,std::upper_bound,std::equal_rangestd::set_intersection,std::set_unionstd::set_difference,std::set_symmetric_differencestd::binary_search
- containers
std::vectordynamic arraystd::dequedouble ended queuestd::listdoubly-linked liststd::forward_listsingly-linked liststd::set,std::multisetstd::map,std::multimapstd::unordered_setstd::array
- container adaptors
std::stackstd::queuestd::priority_queue
std::get(tuple)std::ignorestd::tiestd::applystd::tuple_size,std::tuple_element- structured binding (C++17)
- dynamic storage objects
- placement new expression
std::unique_ptrstd::shared_ptrstd::weak_ptr
- Formatted IO Operations
std::ios::fmtflags
- File IO Operations
- cooked UDL
- uncooked UDL
std::mt19937,std::mt19937_64- std::uniform_int_distribution
- std::uniform_real_distribution
- std::discrete_distribution
- std::bernoulli_distribution
- algorithms used in random number generation
std::generate,std::generate_nstd::shufflestd::sample
std::optionalstd::variant- visitor design pattern
- overloader idiom
- mono state pattern
- variant polymorphism
- variant comparison
std::any
- duration
- time point
- clock
<thread>modulestd::this_threadnamespace- exception handling - threads relationship
- thread-local storage duration |
thread_localkeyword std::asyncfunction templatestd::futureclass templatestd::shared_futureclass templatestd::packaged_taskclass template- shared resources in threads
- mutex (mutual exclusion)
std::mutexclassstd::timed_mutexclassstd::lock_guardclass templatestd::recursive_mutexclassstd::unique_lockclass templatestd::lockfunction templatestd::scoped_lockvariadic class template (C++17)
std::call_once&std::once_flag- condition variable
- atomic
std::atomic_flag- compare and swap(CAS)
- range based for loop
- pointer to an array
- if with initializer (C++17)
std::initializer_listclass templatestd::pairclass template- perfect forwarding
- type alias
decltype(auto)- CRTP(Curiously Recurring Template Pattern) idiom