Basic concepts => cpp/language/basic_concepts Comments => cpp/comment Keywords => cpp/keyword Escape sequences => cpp/language/escape ASCII chart => cpp/language/ascii Names => cpp/language/name Identifiers => cpp/language/identifiers Types => cpp/language/type Arithmetic types => cpp/language/types Objects => cpp/language/object Scope => cpp/language/scope Lifetime => cpp/language/lifetime Storage duration and linkage => cpp/language/storage_duration Definitions and one definition rule => cpp/language/definition Name lookup => cpp/language/lookup Memory model => cpp/language/memory_model Phases of translation => cpp/language/translation_phases The main() function => cpp/language/main_function Preprocessor => cpp/preprocessor #if directive => cpp/preprocessor/conditional #else directive => cpp/preprocessor/conditional #elif directive => cpp/preprocessor/conditional #endif directive => cpp/preprocessor/conditional #ifdef directive => cpp/preprocessor/conditional #ifndef directive => cpp/preprocessor/conditional #define directive => cpp/preprocessor/replace macro => cpp/preprocessor/replace #include directive => cpp/preprocessor/include #warning directive => cpp/preprocessor/warning #error directive => cpp/preprocessor/error #pragma directive => cpp/preprocessor/impl #line directive => cpp/preprocessor/line Expressions => cpp/language/expressions Operators => cpp/language/expressions#Operators Conversions => cpp/language/expressions#Conversions Literals => cpp/language/expressions#Literals Operator precedence => cpp/language/operator_precedence Value categories => cpp/language/value_category Evaluation order and sequencing => cpp/language/eval_order sizeof operator => cpp/language/sizeof alignof operator => cpp/language/alignof typeid operator => cpp/language/typeid new expression => cpp/language/new delete expression => cpp/language/delete Constant expressions => cpp/language/constant_expression Statements => cpp/language/statements if statement => cpp/language/if switch statement => cpp/language/switch for loop => cpp/language/for range-for loop => cpp/language/range-for while loop => cpp/language/while do-while loop => cpp/language/do continue statement => cpp/language/continue break statement => cpp/language/break goto statement => cpp/language/goto return statement => cpp/language/return Declaration => cpp/language/declarations Namespace declaration => cpp/language/namespace Namespace alias => cpp/language/namespace_alias static_assert declaration => cpp/language/static_assert Lvalue and rvalue references => cpp/language/reference Pointers => cpp/language/pointer Arrays => cpp/language/array Enumerations and enumerators => cpp/language/enum const/volatile => cpp/language/cv constexpr specifier => cpp/language/constexpr decltype operator => cpp/language/decltype auto specifier => cpp/language/auto alignas specifier => cpp/language/alignas typedefs => cpp/language/typedef Type alias => cpp/language/type_alias Attributes => cpp/language/attributes Initialization => cpp/language/initialization Default initialization => cpp/language/default_initialization Value initialization => cpp/language/value_initialization Copy initialization => cpp/language/copy_initialization Direct initialization => cpp/language/direct_initialization Aggregate initialization => cpp/language/aggregate_initialization List initialization => cpp/language/list_initialization Reference initialization => cpp/language/reference_initialization Functions => cpp/language/functions Function declaration => cpp/language/function Default arguments => cpp/language/default_arguments Variadic arguments => cpp/language/variadic_arguments Lambda expression => cpp/language/lambda inline specifier => cpp/language/inline Argument-dependent lookup => cpp/language/adl Overload resolution => cpp/language/overload_resolution Operator overloading => cpp/language/operators Undefined behavior => cpp/language/ub Address of an overload => cpp/language/overloaded_address Exceptions => cpp/language/exceptions throw expression => cpp/language/throw try-catch block => cpp/language/try_catch noexcept specifier => cpp/language/noexcept_spec noexcept operator => cpp/language/noexcept Exception specification => cpp/language/except_spec Classes => cpp/language/classes Class types => cpp/language/class Union types => cpp/language/union Data members => cpp/language/data_members Member functions => cpp/language/member_functions Static members => cpp/language/static Nested types => cpp/language/nested_types Member templates => cpp/language/member_template Derived class => cpp/language/derived_class Virtual function => cpp/language/virtual Abstract class => cpp/language/abstract_class Bit fields => cpp/language/bit_field this pointer => cpp/language/this Access specifiers => cpp/language/access friend specifier => cpp/language/friend Default constructor => cpp/language/default_constructor Copy constructor => cpp/language/copy_constructor Copy assignment operator => cpp/language/as_operator Destructor => cpp/language/destructor Move constructor => cpp/language/move_constructor Move assignment operator => cpp/language/move_operator Member initializer lists => cpp/language/initializer_list Templates => cpp/language/templates Class template => cpp/language/class_template Function template => cpp/language/function_template Variable template => cpp/language/variable_template Explicit specialization => cpp/language/template_specialization Partial specialization => cpp/language/partial_specialization Dependent names => cpp/language/dependent_name Parameter packs => cpp/language/parameter_pack sizeof... operator => cpp/language/sizeof... SFINAE => cpp/language/sfinae History of C++ => cpp/language/history Inline assembly => cpp/language/asm Extending the namespace std => cpp/language/extending_std RAII => cpp/language/raii Rule of three => cpp/language/rule_of_three As-if rule => cpp/language/as_if Return value optimization => cpp/language/copy_elision Copy elision => cpp/language/copy_elision Empty base optimization => cpp/language/ebo static_cast conversion => cpp/language/static_cast dynamic_cast conversion => cpp/language/dynamic_cast reinterpret_cast conversion => cpp/language/reinterpret_cast const_cast conversion => cpp/language/const_cast default constructible => cpp/concept/DefaultConstructible move constructible => cpp/concept/MoveConstructible copy constructible => cpp/concept/CopyConstructible move assignable => cpp/concept/MoveAssignable copy assignable => cpp/concept/CopyAssignable destructible => cpp/concept/Destructible trivially copyable => cpp/concept/TriviallyCopyable trivial type => cpp/concept/TrivialType standard layout type => cpp/concept/StandardLayoutType POD type => cpp/concept/PODType equality comparable => cpp/concept/EqualityComparable less than comparable => cpp/concept/LessThanComparable swappable => cpp/concept/Swappable value swappable => cpp/concept/ValueSwappable nullable pointer => cpp/concept/NullablePointer hash => cpp/concept/Hash allocator => cpp/concept/Allocator function object => cpp/concept/FunctionObject callable => cpp/concept/Callable predicate => cpp/concept/Predicate binary predicate => cpp/concept/BinaryPredicate compare => cpp/concept/Compare container => cpp/concept/Container reversible container => cpp/concept/ReversibleContainer allocator aware container => cpp/concept/AllocatorAwareContainer sequence container => cpp/concept/SequenceContainer associative container => cpp/concept/AssociativeContainer unordered associative container => cpp/concept/UnorderedAssociativeContainer default insertable => cpp/concept/DefaultInsertable copy insertable => cpp/concept/CopyInsertable move insertable => cpp/concept/MoveInsertable emplace constructible => cpp/concept/EmplaceConstructible erasable => cpp/concept/Erasable iterator => cpp/concept/Iterator input iterator => cpp/concept/InputIterator output iterator => cpp/concept/OutputIterator forward iterator => cpp/concept/ForwardIterator bidirectional iterator => cpp/concept/BidirectionalIterator random access iterator => cpp/concept/RandomAccessIterator unformatted input function => cpp/concept/UnformattedInputFunction formatted input function => cpp/concept/FormattedInputFunction unformatted output function => cpp/concept/UnformattedOutputFunction formatted output function => cpp/concept/FormattedOutputFunction seed sequence => cpp/concept/SeedSequence uniform random number generator => cpp/concept/UniformRandomNumberGenerator random number distribution => cpp/concept/RandomNumberDistribution basic lockable => cpp/concept/BasicLockable lockable => cpp/concept/Lockable timed lockable => cpp/concept/TimedLockable mutex (concept) => cpp/concept/Mutex timed mutex (concept) => cpp/concept/TimedMutex shared mutex (concept) => cpp/concept/SharedMutex shared timed mutex (concept) => cpp/concept/SharedTimedMutex clock => cpp/concept/Clock trivial clock => cpp/concept/TrivialClock bitmask type => cpp/concept/BitmaskType numeric type => cpp/concept/NumericType literal type => cpp/concept/LiteralType concept (core language feature) => cpp/language/concepts concept (library type requirement) => cpp/concept constraint => cpp/language/constraints and keyword => cpp/language/operator_alternative and_eq keyword => cpp/language/operator_alternative asm keyword => cpp/language/asm bitand keyword => cpp/language/operator_alternative bitor keyword => cpp/language/operator_alternative bool type => cpp/language/types#Boolean_type case label => cpp/language/switch default label => cpp/language/switch type char => cpp/language/types char16_t type => cpp/language/types#Character_types char32_t type => cpp/language/types#Character_types compl keyword => cpp/language/operator_alternative defaulted function => cpp/language/member_functions#Special_member_functions deleted function => cpp/language/function#Deleted_functions type double => cpp/language/types#Floating_point_types else keyword => cpp/language/if enum declaration => cpp/language/enum explicit constructor => cpp/language/explicit explicit conversion function => cpp/language/explicit extern keyword => cpp/keyword/extern extern declaration => cpp/language/storage_duration language linkage => cpp/language/language_linkage extern template => cpp/language/class_template false literal => cpp/language/bool_literal type float => cpp/language/types#Floating_point_types type int => cpp/language/types inline namespace => cpp/language/namespace type long => cpp/language/types keyword mutable => cpp/keyword/mutable not keyword => cpp/language/operator_alternative not_eq keyword => cpp/language/operator_alternative nullptr literal => cpp/language/nullptr or keyword => cpp/language/operator_alternative or_eq keyword => cpp/language/operator_alternative private inheritance => cpp/language/derived_class#Private_inheritance private member access => cpp/language/access#Private_member_access protected inheritance => cpp/language/derived_class#Protected_inheritance protected member access => cpp/language/access#Protected_member_access public inheritance => cpp/language/derived_class#Public_inheritance public member access => cpp/language/access#Public_member_access register storage duration => cpp/language/storage_duration requires expression => cpp/language/constraints type short => cpp/language/types signed types => cpp/language/types static storage duration => cpp/language/storage_duration struct declaration => cpp/language/class thread_local storage duration => cpp/language/storage_duration true literal => cpp/language/bool_literal typename keyword => cpp/keyword/typename unsigned types => cpp/language/types virtual base => cpp/language/derived_class void type => cpp/language/types wchar_t type => cpp/language/types xor keyword => cpp/language/operator_alternative xor_eq keyword => cpp/language/operator_alternative using directive => cpp/language/namespace using declaration (namespace) => cpp/language/namespace using declaration (class member) => cpp/language/using using (type alias, alias template) => cpp/language/type_alias ODR => cpp/language/definition#One_Definition_Rule odr-use => cpp/language/definition#One_Definition_Rule __has_include => cpp/preprocessor/include final => cpp/language/final override => cpp/language/override