Value categories

Each C++ expression (an operator with its operands, a literal, a variable name, etc.) is characterized by two independent properties: a type and a value category. Each expression has some non-reference type, and each expression belongs to exactly one of the three primary value categories. Primary categories The primary value categories correspond to two properties of expressions: has identity: it's possible to determine whether the expression refers to the same entity as another expression,

valarray

This header is part of the numeric library. Classes valarray numeric arrays and array slices (class template) slice BLAS-like slice of a valarray: starting index, length, stride (class) slice_array proxy to a subset of a valarray after applying a slice (class template) gslice generalized slice of a valarray: starting index, set of lengths, set of strides (class) gslice_array proxy to a subset of a valarray after applying a gslice (class template) mask_array proxy

Utility library

C++ includes a variety of utility libraries that provide functionality ranging from bit-counting to partial function application. These libraries can be broadly divided into two groups: language support libraries, and general-purpose libraries. Language support Language support libraries provide classes and functions that interact closely with language features and support common language idioms. Type support Basic types (e.g. std::size_t, std::nullptr_t), RTTI (e.g. std::type_info)

utility

This header is part of the general utility library. Includes <initializer_list>(C++11) Namespaces rel_ops Provide automatic comparison operators Defined in namespace std::rel_ops operator!=operator>operator<=operator>= automatically generates comparison operators based on user-defined operator== and operator< (function template) Functions swap swaps the values of two objects (function template) exchange (C++14) replaces the argument with a

Using-declaration

Introduces a name that is defined elsewhere into the declarative region where this using-declaration appears. using typename(optional) nested-name-specifier unqualified-id ; nested-name-specifier - a sequence of names and scope resolution operators ::, ending with a scope resolution operator. A single :: refers to the global namespace. unqualified-id - an id-expression typename - the keyword typename may be used as necessary to resolve dependent names, when the using-de

User-defined literals

Allows integer, floating-point, character, and string literals to produce objects of user-defined type by defining a user-defined suffix. Syntax A user-defined literal is an expression of any of the following forms. decimal-literal ud-suffix (1) octal-literal ud-suffix (2) hex-literal ud-suffix (3) binary-literal ud-suffix (4) fractional-constant exponent-part(optional) ud-suffix (5) digit-sequence exponent-part ud-suffix (6) character-literal ud-suffix

using

Usage using-directives for namespaces and using-declarations for namespace members using-declarations for class members type alias and alias template declaration (since C++11)

user-defined conversion

Enables implicit conversion or explicit conversion from a class type to another type. Syntax Conversion function is declared like a non-static member function or member function template with no explicit return type and with the name of the form: operator conversion-type-id (1) explicit operator conversion-type-id (2) (since C++11) 1) Declares a user-defined conversion function that participates in all implicit and explicit conversions 2) Declares a user-defined conversion f

unordered_map

This header is part of the containers library. Includes <initializer_list> (C++11) Classes unordered_map (since C++11) collection of key-value pairs, hashed by keys, keys are unique (class template) unordered_multimap (since C++11) collection of key-value pairs, hashed by keys (class template) Functions operator==operator!= compares the values in the unordered_map (function template) std::swap(std::unordered_map) (C++11) specializes the std::swap al

Unqualified name lookup

For an unqualified name, that is a name that does not appear to the right of a scope resolution operator ::, name lookup examines the scopes as described below, until it finds at least one declaration of any kind, at which time the lookup stops and no further scopes are examined. (Note: lookup from some contexts skips some declarations, for example, lookup of the name used to the left of :: ignores function, variable, and enumerator declarations, lookup of a name used as a base class specifier