首页 > 编程语言 >C++ keywords

C++ keywords

时间:2024-05-08 10:33:06浏览次数:29  
标签:complete object C++ alignas keywords 对齐 type

 一、 C++ 98及以前

 

 

二、 C++ 11

  1. alignof

    a. 简介: 是一个运算符,用于确定类型的对齐要求。

    b.语法:

      i. alignof(type_id/object)

              c. 返回值:

      i. std::size_t                // 返回指定类型或对象在内存中的对齐边界,即该类型或对象所需的最小字节对齐。 它返回的是类型所需的对齐字节数,通常是一个2的幂次

    d. 进阶:

      i. 输入参数为 complete object type,返回该类型所需的最小字节对齐数,单位为byte,通常为一个2的幂次

      ii. 输入参数为 以 complete  object type为元素的数组,返回数组元素所属类型所需的最小字节对齐数

                     ii. 输入参数为 complete  object type 的引用,返回被引用的complete  object type 所需的最小字节对齐数

              e. 示例:

      

 1 int main()
 2 {
 3     std::cout << "Alignment of"  "\n"
 4         "- char                  : " << alignof(char) << "\n"
 5         "- int                   : " << alignof(int) << "\n"
 6         "- pointer               : " << alignof(int*) << "\n"
 7         "- short                 : " << alignof(short) << "\n"
 8         "- double                : " << alignof(double) << "\n"
 9         "- array<int>            : " << alignof(array<int,10>) << "\n"
10         "- set<int>              : " << alignof(set<int>) << "\n"
11         "- list<int>             : " << alignof(list<int>) << "\n"
12         "- map<int,int>          :"  << alignof(map<int, int>) << "\n"
13         "- vector<int>           :"  << alignof(vector<int>) << "\n"
14         "- queue<int>            :"  << alignof(queue<int>) << "\n"
15         "- tuple<double,int,int> : " << alignof(tuple<double, int, int>) << "\n"
16         "- tuple<char,char,char> : " << alignof(tuple<char, char, char>) << "\n";
17 
18     return 1;
19 }
View Code

 

  2. alignas

    a. 简介:

      指定某个类型或某个对象的内存对齐方式

    b. 语法:

      i. alignas(expression)    // expression 必须为一个整型常量表达式,且表达式的结果须为 0,或者为其他对  “对齐“ 或 “扩展对齐“ 有效的值

                     ii. alignas(type-id)          // 

                    iii. alignas(pack...)

               

 

三、 C++ 17

 

四、 C++ 20

 

五、C++ 23

标签:complete,object,C++,alignas,keywords,对齐,type
From: https://www.cnblogs.com/newbird2021/p/18179018

相关文章

  • [18] C++虚幻引擎功能拓展
    Day1添加轴动作EAxis::Type//轴方向枚举//旋转输入轴UInputModifierSwizzleAxis*SwizzleAxis=NewObject<UInputModifierSwizzleAxis>(MappingContext);KeyMapping.Modifiers.Add(SwizzleAxis);//取反输入轴UInputModifierNegate*Negate=NewObject<UInputModifierNe......
  • 桥接模式(C++)
    桥接模式:主要应用于需求复杂,不确定的场景,用于解耦#include<iostream>usingnamespacestd;//ImplementorclassDrawAPI{public:virtualvoiddrawCircle(intradius,intx,inty)=0;virtual~DrawAPI(){}};//ConcreteImplementorAclassRedCircle:......
  • blazor中的PageTitle输出keywords和description,自定义组件
    在blazor的PageTitle中不具备输出keywords和description的功能,而如果直接使用<mate>标签,输出中文时会变成乱码,所以我给大家推介下面的代码解君愁:1@*<PageTitle>@Title-@AppTitle</PageTitle>*@2<HeadContent>3@(newMarkupString($"<metaname=\"keywords\"......
  • C#/C++ 通过ODBC连接OceanBase Oracle租户
    概述近期我们项目正处于将Oracle数据库迁移到OceanBaseOracle租户模式的阶段。考虑到我们项目采用了C++和C#混合开发,并且使用了多种技术,因此存在多种数据库连接方式。然而,针对C#连接OceanBase的案例相对较少,因此我特意记录下这一过程。开放数据库互连(ODBC)是微软公司开放服务结......
  • C++U7-4-树及其应用(一)
    堆及其应用(一) 预先掌握 堆的定义堆:是一种特殊的树形数据结构,通常指的是二叉堆,可以被看作一棵完全二叉树。堆的特点是每个节点的值都大于等于(对于最大堆)或小于等于(对于最小堆)其子节点的值。堆的根节点包含最大值(最大堆)或最小值(最小堆)。用途:堆:主要用于实现优先队列,支持高......
  • C++U7-3-树及其应用
    树及其应用 树的表示方法       讲解哈夫曼树的基本概念            哈夫曼树的构造    哈夫曼编码的基本概念                作业讲解:链接:https://pan......
  • 深入探究C++ 类成员(Class Members)
    一、定义在class的声明里头,真正有用的两样东西是datamembers和memberfunctions:Datamembers:表示根据这个class所产生的object里头会有些什么东西,它事实上也是占据object内存的唯一东西(除非引入虚拟机制)。通常为数据的封装性,我们把datamembers声明为private或protec......
  • C++面试笔记 - (二)
    1、C++从代码到可执行二进制文件的过程C++和C语言类似,一个C++程序从源码到执行文件,有四个过程,预编译、编译、汇编、链接。预编译:这个过程主要的处理操作如下:将所有的#define删除,并且展开所有的宏定义处理所有的条件预编译指令,如#if、#ifdef处理#include预编译指令,将被包含的......
  • C++面试总结(一)--c与c++不同
    C++面试总结(一)--C与C++不同c++特点C++在C语言基础上引入了面对对象的机制,同时也兼容C语言。C++有三大特性(1)封装。(2)继承。(3)多态;C++语言编写出的程序结构清晰、易于扩充,程序可读性好。C++生成的代码质量高,效率高,C++更加安全,增加了const常量、引用、四类cast转换(stat......
  • c++中文编码问题
    std::string或者constchar*,本质上都是二进制,不包含编码属性,其编码信息来源于赋值语句,QString以utf16编码,默认构造或赋值的字面量假定为utf8,若是其它编码比如ansi,可以调用QString::fromLocal8bit一、字面量的编码取决于文件,即如果在c++源文件中有直接赋值1)、constchar*s="......