BitmaskType

Defines a type that can be used to represent a set of constant values or any combination of those values. This trait is typically implemented by integer types, std::bitset, or enumerations (scoped and unscoped) with additional operator overloads. Requirements The bitmask type supports a finite number of bitmask elements, which are distinct non-zero values of the bitmask type, such that, for any pair Ci and Cj, Ci & Ci != 0 and Ci & Cj == 0. In addition, the value 0 is used to represe

bitand

Usage alternative operators: as an alternative for &

Bit field

Declares a class data member with explicit size, in bits. Adjacent bit field members may be packed to share and straddle the individual bytes. A bit field declaration is a class data member declaration which uses the following declarator: identifier(optional) attr(optional) : size (1) The type of the bit field is introduced by the decl-specifier-seq of the declaration syntax. attr(C++11) - optional sequence of any number of attributes identifier - the name of the bit field th

BinaryPredicate

The concept BinaryPredicate is a set of requirements expected by some of the standard library facilities from the user-provided arguments. Given a BinaryPredicate bin_pred and a pair of iterators iter1 and iter2 or an iterator iter and a value value, the expression bin_pred(*iter1, *iter2) or, respectively, bin_pred(*iter, value), must be contextually convertible to bool. In addition, evaluation of that expression is not allowed to call non-const member functions of the dereferenced iterators.

BidirectionalIterator

A BidirectionalIterator is a ForwardIterator that can be moved in both directions (i.e. incremented and decremented). Requirements The type It satisfies BidirectionalIterator if. The type It satisfies ForwardIterator And, given. a and b, iterators of type It reference, the type denoted by std::iterator_traits<It>::reference The following expressions must be valid and have their specified effects. Expression Return Equivalent expression Notes --a It& Preconditions: a is

BasicLockable

The BasicLockable concept describes the minimal characteristics of types that provide exclusive blocking semantics for execution agents (i.e. threads). Requirements For type L to be BasicLockable, the following conditions have to be satisfied for an object m of type L: Expression Requires Effects m.lock() Blocks until a lock can be obtained for the current execution agent. If an exception is thrown, no lock is obtained. m.unlock() The current execution agent should hold the lock m.

Basic concepts

This section provides definitions for the specific terminology and the concepts used when describing the C++ programming language. A C++ program is a sequence of text files (typically header and source files) that contain declarations. They undergo translation to become an executable program, which is executed when the OS calls its main function. Certain words in a C++ program have special meaning, and these are known as keywords. Others can be used as identifiers. Comments are ignored during t

auto specifier

Specifies that the type of the variable that is being declared will be automatically deduced from its initializer. For functions, specifies that the return type is a trailing return type or will be deduced from its return statements (since C++14). Syntax auto variable initializer (1) (since C++11) auto function -> return type (2) (since C++11) auto function (3) (since C++14) decltype(auto) variable initializer (4) (since C++14) decltype(auto) function (5) (sin

auto

Usage automatic storage duration specifier (until C++11) auto specifier (since C++11)

attribute specifier sequence(since C++11)

Introduces implementation-defined attributes for types, objects, code, etc. [[ attr]] [[attr1, attr2, attr3(args)]] [[namespace::attr(args)]] alignas_specifier Explanation Attributes provide the unified standard syntax for implementation-defined language extensions, such as the GNU and IBM language extensions __attribute__((...)), Microsoft extension __declspec(), etc. An attribute can be used almost everywhere in the C++ program, and can be applied to almost everything: to types, to v