编程语言
首页 > 编程语言> > C++的97个关键词概览(至20210216)

C++的97个关键词概览(至20210216)

作者:互联网

序号关键字The Usage关键字的用法变迁
1alignas        alignas specifier,specifies the alignment requirement of a
type or an object
对齐指定符,
指定类型或对象的对齐要求
since C++11
2alignof        alignof operator,queries alignment requirements of a type对齐运算符,查询类型的对齐要求since C++11
3andalternative operators,as an alternative for &&替代运算符,作为&&的替代 
4and_eqalternative operators,as an alternative for &=替代运算符,作为&=的替代 
5asmdeclaration of an inline assembly block,asm-declaration gives the
ability to embed assembly language source code within a C++ program.
This declaration is conditionally-supported and implementation defined,
 meaning that it may not be present and, even when provided by the
implementation, it does not have a fixed meaning.
内联汇编块的声明,asm声明提供
在C++程序中嵌入汇编语言源代码的能力.
该声明的支持是有条件的,并且和具体的实现相关,
这意味着它可能不存在,而且即使由实现提供了这个功能,(由于不同的实现方法)它也没有一个固定的含义.
 
6atomic_cancel   transactional memory related具备事务属性的内存相关,正在构建中,截止目前没有编译器适配TM TS
7atomic_commit   transactional memory related具备事务属性的内存相关,正在构建中,截止目前没有编译器适配TM TS
8atomic_noexcept transactional memory related具备事务属性的内存相关,正在构建中,截止目前没有编译器适配TM TS
9auto            automatic storage duration specifier(until C++11)
auto placeholder type specifier(since C++11)
function declaration with trailing return type(since C++11)
structured binding declaration(since C++17)
C++11之前,自动存储持续时间说明符;
自C++11,自动占位符类型说明符;
自C++11,带有尾随返回类型的函数声明;
自C++17,结构化约束性声明.
changed or new meaning added in C++11
10bitandalternative operators,as an alternative for &替代运算符,作为&的替代 
11bitoralternative operators,as an alternative for |替代运算符,作为|的替代 
12boolbool type,as the declaration of the type布尔类型,作为一种类型的声明 
13breakbreak statement,as the declaration of the statementbreak语句,作为语句的声明,跳出当前循环(循环语句关键词) 
14caseswitch statement,as the declaration of the case labels开关语句,作为开关语句的声明,开关语句分支(开关语句) 
15catch(1)try-block,associates one or more exception handlers (catch-clauses) with a compound statement.
(2)function-try-block,establishes an exception handler around the body of a function.
(1)try-block,将一个或多个异常处理程序(捕获-子句)与复合语句相关联;
(2)function-try-block,在函数体周围建立异常处理程序.
 
16charchar type,as the declaration of the typechar类型,作为一种类型的声明 
17char8_t        char8_t type,as the declaration of the typechar8_t类型,作为一种类型的声明since C++20
18char16_t       char16_t type,as the declaration of the typechar16_t类型,作为一种类型的声明since C++11
19char32_t       char32_t type,as the declaration of the typechar32_t类型,作为一种类型的声明since C++11
20class          (1)declaration of a class
(2)declaration of a scoped enumeration type
(since C++11)
(3)In a template declaration, class can be used to introduce type template parameters and template template parameters
(4)If a function or a variable exists in scope with the name identical to the name of a class type, class can be prepended to the name for disambiguation, resulting in an elaborated type specifier
(1)一个类的申明;
(2)限定作用域枚举类型的声明;
(3)在模板声明中,class关键字可用于引入类型模板参数和模板模板参数;
(4)如果作用域中存在一个函数或变量,其名称与类类型的名称相同,则可以在类的名称前面加上类以消除歧义,从而产生一个详细的类型说明符.
changed or new meaning added in C++11
21complalternative operators,as an alternative for ~替代运算符,作为~的替代 
22concept        declares a named type requirement声明命名类型要求since C++20
23const(1)const type qualifier;
(2)const-qualified member functions;
(1)const类型限定符;
(2)成员函数的const属性限定.
 
24consteval consteval declaration specifier,specifies that a function is an immediate function, that is, every call to the function must produce a compile-time constantconsteval声明说明符,指定函数是即时函数,也就是说,对该函数的每次调用都必须产生一个编译时常量.since C++20
25constexpr (1)constexpr declaration specifier (since C++11),specifies that the value of a variable or function can appear in constant expressions;
(2)constexpr if statement (since C++17),conditionally executes another statement,used where code needs to be executed based on a run-time or compile-time condition.
(1)constexpr声明说明符(从C++11开始),指定变量或函数的值可以出现在常量表达式中;
(2)constexpr条件语句(自C++17以来),有条件地执行另一个语句,用于需要基于运行时或编译时条件执行代码的情况.
since C++11
26constinit constinit declaration specifier(since C++20),asserts that a variable has static initialization, i.e. zero initialization and constant initialization, otherwise the program is ill-formedconstinit声明说明符(自C++20以来),断言变量具有静态初始化,即零初始化和常量初始化,否则程序是病态的.since C++20
27const_castconst_cast type conversion expression,as the declaration of the expression.Converts between types with different cv-qualification.const_cast类型转换表达式,作为该表达式的声明.在具有不同cv限定的类型之间进行转换. 
28continuecontinue statement,as the declaration of the statemencontinue语句,作为语句的声明,结束当前循环,开始下一轮循环(循环语句关键词) 
29co_await The unary operator co_await suspends a coroutine and returns control to the caller.一元操作符co_await挂起一个协程并将控制返回给调用方.since C++20
30co_return return statement in a coroutine (since C++20),uses the keyword co_return to complete execution returning a value在协程中使用返回语句(自C++20以来),使用关键字co_return来完成返回一个值的执行since C++20
31co_yield yields a value from a coroutine (since C++20),uses the keyword co_yield to suspend execution returning a value从协程中生成一个值(自C++20),使用关键字co_yield来暂停返回一个值的执行since C++20
32decltype (1)decltype specifier,inspects the declared type of an entity or the type and value category of an expression(since C++11)
(2)decltype(auto)(since C++14),for variables, specifies that the type of the variable that is being declared will be automatically deduced from its initializer.Placeholder type specifiers.For variables, 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 will be deduced from its return statements(since C++14).For non-type template parameters, specifies that the type will be deduced from the argument(since C++17).


 
(1)declotype说明符,检查一个实体的声明类型或一个表达式的类型和值类别(自C++11以来);
(2)declotype(auto)(自C++14以来),对于变量,指定要声明的变量的类型将从其初始化器自动推导出来.占位符类型说明符.对于变量,指定要声明的变量的类型将自动从其初始化式推导出来.对于函数,指定返回类型将从它的返回语句推导出来(自C++14以来).对于非类型模板参数,指定将从参数推导出类型(自c++17以后).
since C++11
33default (1)switch statement: as the declaration of the default case label;
(2)explicitly-defaulted function definition: as an explicit instruction to the compiler to generate special member function or a comparison operator (since C++20) for a class.(since C++11)
(1)开关语句:作为缺省大小写标签的声明;
(2)显式默认函数定义:作为一个显式指令告诉编译器,为一个类生成特殊的成员函数或比较运算符(自C++20以来).(自C++11)
changed or new meaning added in C++11
34delete (1)delete expression,to destroys object(s) previously allocated by the new expression and releases obtained memory area;
(2)deallocation functions as the name of operator-like functions;
(3)deleted functions(since C++11).If, instead of a function body, the special syntax = delete ; is used, the function is defined as deleted. Any use of a deleted function is ill-formed (the program will not compile). This includes calls, both explicit (with a function call operator) and implicit (a call to deleted overloaded operator, special member function, allocation function etc), constructing a pointer or pointer-to-member to a deleted function, and even the use of a deleted function in an unevaluated expression. However, implicit ODR-use of a non-pure virtual member function that happens to be deleted is allowed.
If the function is overloaded, overload resolution takes place first, and the program is only ill-formed if the deleted function was selected.
(1)delete表达式,销毁以前由new表达式分配的对象并释放获得的内存区域;
(2)释放函数作为类操作符函数的名称;
(3)显示删除一个函数.如果对一个函数使用特殊语法=delete,而不是定义一个函数体,则函数定义为deleted.任何对已删除函数的使用都是错误的(程序将无法编译).这包括显式(使用函数调用操作符)和隐式(调用删除的重载操作符、特殊成员函数、分配函数等)调用,构造指向已删除函数的指针或成员指针,甚至在未求值表达式中使用已删除的函数.但是,一个碰巧被删除的非纯虚拟成员函数的ODR-USE是被允许的.
如果函数是重载的,那么重载解析将首先发生,并且只有选择了被删除的函数,程序才会出错.
changed or new meaning added in C++11
35dodo-while loop,as the declaration of the loopdo-while循环,作为循环的声明 
36doubledouble type, as the declaration of the typedouble类型,作为类型的声明 
37dynamic_castdynamic_cast type conversion expression,as the declaration of the expressiondynamic_cast类型转换表达式,作为该表达式的声明 
38elseif statement,as the declaration of the alternative branchif语句,作为替代分支的声明 
39enumdeclaration of an enumeration type枚举类型的声明 
40explicitexplicit specifier显式说明符 
41export (1)Used to mark a template definition exported, which allows the same template to be declared, but not defined, in other translation units.(until C++11)
(2)The keyword is unused and reserved.(since C++11,until C++20)
(3)Marks a declaration, a group of declarations, or another module as exported by the current module.(since C++20)
(1)用于标记导出的模板定义,允许在其他转换单元中声明但不定义相同的模板(C++11前);
(2)在C++11和C++20期间,这个关键字没有被使用,被保留了;
(3)标记当前模块导出的声明、声明组或另一个模块.(自C++20)
changed or new meaning added in C++11
42extern (1)static storage duration with external linkage specifier
(2)language linkage specification
(3)explicit template instantiation declaration (or "extern template")
(1)用来标记一个变量带外部链接且具有静态存储的特性;
(2)提供语言链接规范;
(3)用于显式模板实例化声明(或“extern模板”).
changed or new meaning added in C++11
43falseboolean literal布尔字面值常量 
44floatfloat type,as the name of the type浮点数类型,作为类型的名称 
45for(1)for loop,as the declaration of the loop
(2)range-based for loop,as the declaration of the loop (since C++11)
(1)for循环,作为循环的声明;
(2)基于范围的for循环,作为循环的声明(自C++11以来)
 
46friendfriend specifier,the friend declaration appears in a class body and grants a function or another class access to private and protected members of the class where the friend declaration appears.友元说明符.友元声明出现在类主体中,确保声明为友元的函数或它的友元类有权访问这个类的私有成员和受保护成员. 
47gotogoto statement,as the declaration of the goto statementgoto语句,作为goto声明的声明,无条件跳转语句(条件语句关键词) 
48ifif statement, as the declaration of the if statementif语句,作为if语句的声明 
49inline (1)inline specifier for functions and variables (since C++17)
(2)inline namespace definition (since C++11)
(1)函数和变量的内联说明符(自C++17)
(2)内联命名空间定义(自C++11)
changed or new meaning added in C++11
50intint type,as the declaration of the typeint类型,作为类型的声明 
51longlong type modifierlong类型说明符 
52mutable (1)mutable type specifier
(2)lambda-declarator that removes const qualification from parameters captured by copy (since C++11)
(1)可变类型说明符
(2)从复制捕获的参数中移除const限定的Lambda声明符.
changed or new meaning added in C++11
53namespace(1)namespace declaration
(2)namespace alias definition
(3)using-directives
(1)命名空间声明;
(2)命名空间别名定义;
(3)使用指令.
 
54new(1)new expression
(2)allocation functions as the name of operator-like functions
(1)new表达式
(2)分配函数作为类操作符函数的名称.
 
55noexcept (1)noexcept operator,the noexcept operator performs a compile-time check that returns true if an expression is declared to not throw any exceptions.It can be used within a function template's noexcept specifier to declare that the function will throw exceptions for some types but not others.
(2)noexcept specifier,specifies whether a function could throw exceptions.
(1)noexcept运算符.执行编译时检查,如果表达式被声明为不引发任何异常,则该检查返回true.它可以在函数模板的noexcept说明符中使用,以声明函数将对某些类型抛出异常,但对其他类型不抛出异常.
(2)noexcept说明符,指定函数是否可以引发异常.
since C++11
56notalternative operators,as an alternative for !替代运算符,作为!的替代 
57not_eqalternative operators,as an alternative for !=替代运算符,作为!=的替代 
58nullptr nullptr pointer literal (since C++11)nullptr指针字面量since C++11
59operatordeclaration of an overloaded operator重载运算符的声明 
60oralternative operators,as an alternative for ||替代运算符,作为||的替代 
61or_eqalternative operators,as an alternative for !=替代运算符,作为!=的替代 
62privateprivate access specifier私有访问说明符 
63protectedprotected access specifier受保护访问说明符 
64publicpublic access specifier公有访问说明符 
65reflexpr (1)gets the member list of a class type, or the enumerator list of an enum type.
(2)gets the name of type and member.
(3)detects whether a data member is static or constexpr.
(4)detects whether member function is virtual, public, protected or private.
(5)get the row and column of the source code when the type defines.
(1)获取类类型的成员列表或枚举类型的枚举数列表;
(2)获取类型和成员的名称;
(3)检测数据成员是静态成员还是constexpr;
(4)检测成员函数是虚拟的,公有的,受保护的还是私有的;
(5)获取类型定义时源代码的行和列.
(实验中,暂无编译器支持)
reflection TS
66register (1)automatic storage duration specifier (deprecated)(until C++17)
(2)The keyword is unused and reserved.(since C++17)
(1)自动存储持续时间说明符(不建议使用,C++17前);
(2)关键字未使用并被保留(自C++17).
changed or new meaning added in C++11
67reinterpret_castreinterpret_cast type conversion expression,as the declaration of the expression类型转换表达式,作为表达式的声明 
68requires (1)specifies a constant expression on template parameters that evaluate a requirement(since C++20)
(2)in a template declaration, specifies an associated constraint (since C++20)
(1)指定一个用于评估需求的模板参数的常量表达式(自C++20以来);
(2)在模板声明中,指定一个关联的约束(自C++20以来).
since C++20
69returnreturn statement,as the declaration of the statement返回语句,作为语句的声明 
70shortshort type modifiershort类型说明符 
71signedsigned type modifiersigned类型说明符 
72sizeof (1)sizeof operator,queries size of the object or type,used when actual size of the object must be known.
(2)sizeof... operator (since C++11),queries the number of elements in a parameter pack,returns a constant of type std::size_t.
(1)查询对象或类型的大小,当必须知道对象的实际大小时使用;
(2)查询参数包中的元素数,返回std::size_t类型的常量.
changed or new meaning added in C++11
73static(1)declarations of namespace members with static storage duration and internal linkage
(2)definitions of block scope variables with static storage duration and initialized once
(3)declarations of class members not bound to specific instances
(1)具有静态存储持续时间和内部链接的命名空间成员的声明
(2)具有静态存储持续时间和一次初始化的块作用域变量的定义
(3)不绑定到特定实例的类成员的声明
 
74static_assert static_assert declaration (since C++11),performs compile-time assertion checkingstatic_assert声明,执行编译时断言检查since C++11
75static_caststatic_cast type conversion expression,as the declaration of the expressionstatic_cast类型转换表达式,作为表达式的声明 
76struct (1)declaration of a compound type
(2)declaration of a scoped enumeration type(since C++11)
(3)If a function or a variable exists in scope with the name identical to the name of a non-union class type, struct can be prepended to the name for disambiguation, resulting in an elaborated type specifier
(1)复合型声明
(2)范围枚举类型的声明(自C++11以来)
(3)如果作用域中存在一个函数或变量,其名称与非联合类类型的名称相同,则可以将struct加在名称前面以消除歧义,从而产生一个详细的类型说明符
changed or new meaning added in C++11
77switchswitch statement,as the declaration of the statementswitch语句,作为该语句的声明 
78synchronized Work in progress.正在开发中,大概是同步相关的内容TM TS
79template(1)declaration of a template
(2)inside a template definition, template can be used to declare that a dependent name is a template.
(1)模板声明;
(2)在模板定义里面,模板可以用来声明依赖名是模板.
 
80thisThis Pointer
The keyword this is a prvalue expression whose value is the address of the implicit object parameter (object on which the non-static member function is being called). It can appear in the following contexts:
1) Within the body of any non-static member function, including member initializer list
2) within the declaration of a non-static member function anywhere after the (optional) cv-qualifier sequence, including dynamic exception specification(deprecated), noexcept specification(C++11), and the trailing return type(since C++11)
3) within default member initializer (since C++11)
This指针.
关键字this是一个prvalue表达式,其值是隐式对象参数(调用非静态成员函数的对象)的地址,它可以出现在以下场景中:
1)在任何非静态成员函数体中,包括成员初始化列表
2)在非静态成员函数的声明中,位于(可选的)cv-qualifier序列之后的任何地方,包括动态异常规范(不建议)、noexcept规范(C++11)和尾随返回类型(自C++11以来);
3)在默认的成员初始化器内(自C++11以来).
 
81thread_local thread local storage duration specifier (since C++11),the storage class specifiers are a part of the decl-specifier-seq of a name's declaration syntax. Together with the scope of the name, they control two independent properties of the name: its storage duration and its linkage.线程本地存储持续时间说明符(自C++11),存储类说明符是名称声明语法的decl-specifier-seq的一部分.它们与名称的作用域一起控制名称的两个独立属性:存储持续时间和链接.since C++11
82throw(1)throw expression
(2)exception specifications
(1)抛出表达式
(2)异常说明符
 
83trueboolean literal布尔字面值常量 
84try(1)try-block
(2)function-try-block
与catch一起看 
85typedeftypedef specifier,creates an alias that can be used anywhere in place of a (possibly complex) type name.typedef说明符创建一个别名,可在任何地方代替(可能是复杂的)类型名使用 
86typeidtypeid operator,queries information of a type.Used where the dynamic type of a polymorphic object must be known and for static type identification.类型标识符,查询类型信息,用于必须知道多态对象的动态类型以及用于静态类型标识 
87typename(1)In a template declaration, typename can be used as an alternative to class to declare type template parameters and template template parameters (since C++17).
(2)Inside a declaration or a definition of a template, typename can be used to declare that a dependent qualified name is a type.
(3)Inside a declaration or a definition of a template, (until C++11) typename can be used before a non-dependent qualified type name. It has no effect in this case.
(4)Inside a requirements for type requirements (since C++20)
(1)在模板声明中,typename可以作为类的替代,用于声明类型模板参数和模板模板参数(自C++17以来);
(2)在模板的声明或定义中,可以使用类型名来声明依赖限定名是类型;
(3)在模板的声明或定义中,(直到C++11)类型名可以用在非
依赖限定类型名之前。在这种情况下没有任何影响;
(4)存在于一个需求类型中(因为C++20).
 
88union(1)declaration of a union type
(2)if a function or a variable exists in scope with the name identical to the name of a union type, union can be prepended to the name for disambiguation, resulting in an elaborated type specifier
(1)联合类型的声明
(2)如果一个函数或一个变量在作用域中的名称与联合类型的名称相同,则可以在名称前面加上联合以消除歧义,从而产生一个详细的类型说明符
 
89unsignedunsigned type modifier无符号类型修饰符 
90using (1)using-directives for namespaces and using-declarations for namespace members
(2)using-declarations for class members
(3)type alias and alias template declaration (since C++11)
(1)命名空间的使用指令和命名空间成员的使用声明
(2)类成员的使用声明
(3)类型别名和别名模板声明(自C++11以来)
changed or new meaning added in C++11
91virtual(1)virtual function specifier
(2)virtual base class specifier
(1)虚函数说明符
(2)虚拟基类说明符
 
92void(1)void type
(2)parameter list of a function with no parameters
(1)空类型
(2)无参数函数的参数表
 
93volatile(1)volatile type qualifier
(2)volatile-qualified member functions
(1)易失性类型限定符
(2)易失性限定成员函数
 
94wchar_twchar_t type, as the declaration of the type.wchar_t - type for wide character representation (see wide strings). Required to be large enough to represent any supported character code point (32 bits on systems that support Unicode. A notable exception is Windows, where wchar_t is 16 bits and holds UTF-16 code units) It has the same size, signedness, and alignment as one of the integer types, but is a distinct type.wchar_t类型,作为type.wchart-type的声明,用于宽字符表示(参见宽字符串)要求足够大,以表示任何支持的字符代码点(在支持Unicode的系统上为32位).一个显著的例外是Windows,其中wchar_t为16位,并持有UTF-16代码单元).它具有与整数类型之一相同的大小,符号和对齐方式,但它是一种不同的类型。 
95while(1)while loop: as the declaration of the loop
(2)do-while loop: as the declaration of the terminating condition of the loop
(1)while循环:作为循环的声明
(2)do-while循环:作为循环终止条件的声明
 
96xoralternative operators,as an alternative for ^替代运算符,作为^的替代 
97xor_eqalternative operators,as an alternative for ^=替代运算符,作为^=的替代 

标签:11,声明,since,C++,20210216,declaration,type,97
来源: https://blog.csdn.net/Edidaughter/article/details/113828517