当前位置: 首页 > news >正文

禁止显示网站目录网络营销有哪些

禁止显示网站目录,网络营销有哪些,祁县网站建设,php下载站源码C const、constexpr与consteval作用与区别 在C 常量表达式和编译时优化中,我们已经提到了常量、编译时常量与运行时常量的概念。为了加深理解,我们再重新明晰一下这三者的概念。 常量:初始化之后便不可修改的量。在c中使用const修饰的“变量”…

C++ const、constexpr与consteval作用与区别

在这里插入图片描述

在C++ 常量表达式和编译时优化中,我们已经提到了常量、编译时常量与运行时常量的概念。为了加深理解,我们再重新明晰一下这三者的概念。

  • 常量:初始化之后便不可修改的量。在c++中使用const修饰的“变量”称为常量。const修饰的常量可以是编译时常量,也可以是运行时常量。现代编译器将自行推理决断。

    #include<iostream>
    int main(){const int x{1};std::cout << x << std::endl;//可以读取x = 5; //error,编译错误,常量不可修改
    }
    
  • 编译时常量:在编译时,编译器将常量的值计算出来,不必等到每次运行时计算。

    #include<iostream>
    int main(){const int x{1 + 8};std::cout << x << std::endl;
    }
    

    就像上面的代码,若不优化,则每次运行编译后的程序时都需要计算 1 + 8 1+8 1+8,如果程序执行一百万次,则 1 + 8 1+8 1+8将被计算一百万次。这完全是没有必要的。
    优化后的结果类似以下代码:

    #include<iostream>
    int main(){const int x{9};std::cout << x << std::endl;
    }
    
  • 运行时常量:程序运行时才确定下来的常量。

    #include<iostream>
    int main(){int a = 9;const int x{a}; //由于a是一个变量,所以x只能在运行到此处的时候才能确定值。std::cout << x << std::endl;
    }
    

constexpr

尽管现代编译器已经可以自主判断是否应该编译时优化,但是由于某些表达式十分复杂,仅仅依赖于编译器是十分困难的。于是c++提供了constexpr关键字,它告诉编译器其修饰的常量是编译时常量可以在编译时优化。

注意: constexpr表示该对象可以在常量表达式中使用。初始值设定项的值在编译时必须已知。constexpr对象可以在运行时或编译时进行计算。constexprstd::string、std::vector和其他使用动态内存分配的类型不完全兼容。

#include <iostream>double nonconstexpr_ex(double radius)
{constexpr double pi { 3.14159265359 };return 2.0 * pi * radius;
}
constexpr double constexpr_ex(double radius)
{constexpr double pi { 3.14159265359 };return 2.0 * pi * radius;
}
int main()
{constexpr double circumference { nonconstexpr_ex(3.0) }; // 编译错误constexpr double circumference { constexpr_ex(3.0) }; // 正确std::cout << "Our circle has circumference " << circumference << "\n";return 0;
}

  1. constexpr 函数也可以在运行时进行计算。所以在非必要时,编译器可自行选择函数是否在编译时计算。
  2. constexpr 函数是隐式内联的, 编译器必须能够看到constexpr(或 consteval)函数的完整定义,而不仅仅是前向声明。

consteval

constevalc++20引入的关键字。用于指示函数必须在编译时计算,否则将导致编译错误。此类函数称为即时函数(immediate functions)。

http://www.yayakq.cn/news/253391/

相关文章:

  • 网站查询工具seo广告策划书撰写
  • 广东省网站建设公司排名网站降权不收录
  • 做电影网站怎样赚钱吗html5黑色网站
  • 苏州网站建设运营推广网站建设的内容是什么
  • 网站功能与建设特色免费个人域名网站
  • 请求php网站数据库网站怎么做才会有收录
  • 计算机网络技专业术网站开发linode搭wordpress
  • 拉米拉网站建设图文网站模板
  • 青岛市做网站广州优俊网站制作公司
  • 哪些网站是php做的网站友情链接要加什么
  • 南宁个人做网站的江西头条新闻今天
  • uehtml 网站源码制作主页的软件
  • 网站建设需要客户提供什么深圳网站建设黄浦网络
  • 徐州住房与城乡建设部网站模板之家html
  • 郑州网站开发设计公司电话公司网络组建设计与方案
  • 企业网站建设实训体会中山骏域网站建设专家
  • html制作一个网站代码大型医院设计网站建设
  • 做外贸哪些国外网站可以推广做墙报的网站
  • 通州网站建设全包wordpress怎么换域名
  • 晋中北京网站建设如何做房地产微信推送网站广告
  • 个人域名备过案了做电影网站会查吗厦门网上房地产网官方网站
  • 南昌集团网站建设江苏建筑网站
  • 中山市有做网站优化的吗创建网站需要哪些步骤
  • 郑州网站建设排名河南建设信息网首页
  • 做网站用html还是python好北京搭建公司
  • 青岛网站运营长春网站分析
  • 比较大气的企业网站资源库建设网站
  • 新加坡网站开发公司中山网络公关
  • 定制网站开发是什么个人建设门户网站 如何备案
  • 网站开发资质要求WordPress按评论时间排序