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

std::list::empty

bool empty() const; Checks if the container has no elements, i.e. whether begin() == end(). Parameters (none). Return value true if the container is empty, false otherwise. Exceptions (none) (until C++11) noexcept specification: noexcept (since C++11) Complexity Constant. Example The following code uses empty to check if a std::list<int> contains any elements: #include <list> #include <iostream> int main() { std::list<int> numbers; s

std::is_destructible

Defined in header <type_traits> template< class T > struct is_destructible; (1) (since C++11) template< class T > struct is_trivially_destructible; (2) (since C++11) template< class T > struct is_nothrow_destructible; (3) (since C++11) 1) If an imaginary struct containing a member object of type T has a non-deleted destructor, provides the member constant value equal true. For any other type, value is false. (until C++14) 1) If T is a refere

Library Concepts

Concept is a term that describes a named set of requirements for a type. Formal specification of concepts (ISO/IEC TS 19217:2015) is an experimental technical specification, which makes it possible to verify that template arguments satisfy the expectations of a template or function during overload resolution and template specialization. The library concepts listed on this page are the named requirements used in the normative text of the C++ standard to define the expectations of the standard li

ATOMIC_FLAG_INIT

Defined in header <atomic> #define ATOMIC_FLAG_INIT /* implementation-defined */ Defines the expression which can be used to initialize std::atomic_flag to clear (false) state with the statement std::atomic_flag v = ATOMIC_FLAG_INIT;. It is unspecified if it can be used with other initialization contexts. If the flag has static storage duration, this initialization is static. This is the only way to initialize std::atomic_flag to a definite value: the value held after any o

std::remquo

Defined in header <cmath> float remquo( float x, float y, int* quo ); (1) (since C++11) double remquo( double x, double y, int* quo ); (2) (since C++11) long double remquo( long double x, long double y, int* quo ); (3) (since C++11) Promoted remquo( Arithmetic1 x, Arithmetic2 y, int* quo ); (4) (since C++11) 1-3) Computes the floating-point remainder of the division operation x/y as the std::remainder() function does. Additionally, the sign

std::ispunct

Defined in header <cctype> int ispunct( int ch ); Checks if the given character is a punctuation character as classified by the current C locale. The default C locale classifies the characters !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ as punctuation. The behavior is undefined if the value of ch is not representable as unsigned char and is not equal EOF. Parameters ch - character to classify Return value Non-zero value if the character is a punctuation charact

Input/output manipulators

Manipulators are helper functions that make it possible to control input/output streams using operator<< or operator>>. The manipulators that are invoked without arguments (e.g. std::cout << std::boolalpha; or std::cin >> std::hex;) are implemented as functions that take a reference to a stream as their only argument. The special overloads of basic_ostream::operator<< and basic_istream::operator>> accept pointers to these functions. The manipulators that are

TriviallyCopyable

Requirements Trivial copy constructor Trivial move constructor Trivial copy assignment operator Trivial move assignment operator Trivial destructor No virtual functions or virtual base classes All (non-static) members and base classes are TriviallyCopyable Scalar types and arrays of TriviallyCopyable objects are TriviallyCopyable as well, as well as the const-qualified (but not volatile-qualified) versions of such types. See also is_trivially_copyable (C++11) checks if

std::ctype_base

Defined in header <locale> class ctype_base; The class std::ctype_base lists the character classification categories which are inherited by the std::ctype facets. Member types mask unspecified BitmaskType (enumeration, integer type, or bitset) (typedef) Member constants space [static] the value of mask identifying whitespace character classification (public static member constant) print [static] the value of mask identifying printable character class