alignof

Usage alignof operator (since C++11) Example #include <iostream> #include <cstddef> int main() { std::cout << alignof(std::max_align_t) << '\n'; } Possible output: 16

alignas specifier

Specifies the alignment requirement of a type or an object. Syntax alignas( expression ) alignas( type-id ) alignas( pack ... ) 1) alignas(expression must be an integral constant expression that evaluates to zero, or to a valid value for an alignment or extended alignment. 2) Equivalent to alignas(alignof(type)) 3) Equivalent to multiple alignas specifiers applied to the same declaration, one for each member of the parameter pack, which can be either type or non-type

alignas

Usage alignas specifier (since C++11)

Algorithms library

The algorithms library defines functions for a variety of purposes (e.g. searching, sorting, counting, manipulating) that operate on ranges of elements. Note that a range is defined as [first, last) where last refers to the element past the last element to inspect or modify. Non-modifying sequence operations Defined in header <algorithm> all_ofany_ofnone_of (C++11)(C++11)(C++11) checks if a predicate is true for all, any or none of the elements in a range (function templat

algorithm

This header is part of the algorithm library. Functions Non-modifying sequence operations all_ofany_ofnone_of (C++11)(C++11)(C++11) checks if a predicate is true for all, any or none of the elements in a range (function template) for_each applies a function to a range of elements (function template) countcount_if returns the number of elements satisfying specific criteria (function template) mismatch finds the first position where two ranges differ (function templa

aggregate initialization

Initializes an aggregate from braced-init-list. Syntax T object = {arg1, arg2, ...}; (1) T object {arg1, arg2, ...}; (2) (since C++11) Explanation Aggregate initialization is a form of list-initialization, which initializes aggregates. An aggregate is an object of the type that is one of the following. array type class type (typically, struct or union), that has no private or protected non-static data members no user-provided constructors (explicitly defaulted or dele

Address of an overloaded function

Besides function-call expressions, where overload resolution takes place, the name of an overloaded function may appear in the following 7 contexts: 1) initializer in a declaration of an object or reference 2) on the right-hand-side of an assignment expression 3) as a function call argument 4) as a user-defined operator argument 5) the return statement 6) explicit cast or static cast argument 7) non-type template argument In each context, the name of an overloaded function may be prece

access specifiers

In a member-specification of a class/struct or union, define the visibility of subsequent members. In a base-clause of a derived class declaration, define the accessibility of inherited members of the subsequent base-specifiers. Syntax public : member-declarations (1) protected : member-declarations (2) private : member-declarations (3) class_name : public base_classes (4) class_name : protected base_classes (5) class_name : private base_classes (6) 1)

abstract class

Defines an abstract type which cannot be instantiated, but can be used as a base class. Syntax pure virtual function is a virtual function whose declarator has the following syntax: declarator virt-specifier(optional) = 0 Here the sequence = 0 is known as pure-specifier, and appears either immediately after the declarator or after the optional virt-specifier (override or final). pure-specifier cannot appear in a member function definition. struct Base { virtual int g(); virtual ~Base