std::piecewise_construct_t

Defined in header <utility> struct piecewise_construct_t { }; (since C++11) std::piecewise_construct_t is an empty struct tag type used to disambiguate between different functions that take two tuple arguments. The overloads that do not use std::piecewise_construct_t assume that each tuple argument becomes the element of a pair. The overloads that use std::piecewise_construct_t assume that each tuple argument is used to construct, piecewise, a new object of specified type,

std::future::future

future(); (1) (since C++11) future( future&& other ); (2) (since C++11) future( const future& other ) = delete; (3) (since C++11) Constructs a std::future object. 1) Default constructor. Constructs a std::future with no shared state. After construction, valid() == false. 2) Move constructor. Constructs a std::future with the shared state of other using move semantics. After construction, other.valid() == false. 3) std::future is not CopyConstructible. Parame

Empty base optimization

Allows the size of an empty base subobject to be zero. Explanation The size of any object or member subobject is required to be at least 1 even if the type is an empty class type (that is, a class or struct that has no non-static data members), in order to be able to guarantee that the addresses of distinct objects of the same type are always distinct. However, base class subobjects are not so constrained, and can be completely optimized out from the object layout: #include <cassert>

std::map::rend

reverse_iterator rend(); const_reverse_iterator rend() const; const_reverse_iterator crend() const; (since C++11) Returns a reverse iterator to the element following the last element of the reversed container. It corresponds to the element preceding the first element of the non-reversed container. This element acts as a placeholder, attempting to access it results in undefined behavior. Parameters (none). Return value Reverse iterator to the element following the last

std::unordered_multiset::rehash

void rehash( size_type count ); (since C++11) Sets the number of buckets to count and rehashes the container, i.e. puts the elements into appropriate buckets considering that total number of buckets has changed. If the new number of buckets makes load factor more than maximum load factor (count < size() / max_load_factor()), then the new number of buckets is at least size() / max_load_factor(). Parameters count - new number of buckets Return value (none). Complexity

throw expression

Signals an erroneous condition and executes an error handler. Syntax throw expression (1) throw (2) Explanation See try-catch block for more information about try and catch (exception handler) blocks 1) First, copy-initializes the exception object from expression (this may call the move constructor for rvalue expression, and the copy/move may be subject to copy elision), then transfers control to the exception handler with the matching type whose compound statement or

std::aligned_storage

Defined in header <type_traits> template< std::size_t Len, std::size_t Align = /*default-alignment*/ > struct aligned_storage; (since C++11) Provides the member typedef type, which is a PODType suitable for use as uninitialized storage for any object whose size is at most Len and whose alignment requirement is a divisor of Align. The default value of Align is the most stringent (the largest) alignment requirement for any object whose size is at most Len. If the defaul

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

std::stoul

Defined in header <string> unsigned long stoul( const std::string& str, std::size_t* pos = 0, int base = 10 ); unsigned long stoul( const std::wstring& str, std::size_t* pos = 0, int base = 10 ); (1) (since C++11) unsigned long long stoull( const std::string& str, std::size_t* pos = 0, int base = 10 ); unsigned long long stoull( const std::wstring& str, std::size_t* pos = 0, int base = 10 ); (2) (since C++11) Interprets an unsigned integer va

std::time_get_byname

Defined in header <locale> template< class CharT, class InputIterator = std::istreambuf_iterator<CharT> > class time_get_byname : public std::time_get<CharT, InputIterator> std::time_get_byname is a std::time_get facet which encapsulates time and date parsing rules of the locale specified at its construction. Two specializations are provided by the standard library. Defined in header <locale> std::time_get_byname<char, InputIterator>