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

国外作品集网站眉山北京网站建设

国外作品集网站,眉山北京网站建设,网站的专区怎么建设,flash制作技巧C 23 是 C 编程语言的最新标准版本#xff0c;于 2023 年正式发布#xff0c;带来了诸多新特性与改进#xff0c;以下是一些主要内容#xff1a; 1.语言特性 1.显式对象参数#xff08;Deducing this#xff09;#xff1a;显式对象参数#xff08;Deducing this 23 是 C 编程语言的最新标准版本于 2023 年正式发布带来了诸多新特性与改进以下是一些主要内容 1.语言特性 1.显式对象参数Deducing this显式对象参数Deducing this允许在非静态成员函数中显式指定对象参数。在以往的 C 版本中this指针是隐式传递的而 C 23 提供了一种更明确的方式来处理对象参数这在一些复杂的编程场景和元编程场景下非常有用。 class MyClass { public:void myFunction(MyClass* this, int arg) {// 函数实现} }; 在这个例子中myFunction成员函数显式地指定了对象参数MyClass* this。这种写法使得函数调用的对象关系更加明确。 2.多维下标运算符重载方便处理多维数组让多维数组的访问和操作更加直观自然。比如 int arr[2][3][4]; arr[1][2][3] 42; // 传统方式访问多维数组元素 // C23 中可以这样重载下标运算符 class MyArray { public:int operator()(int i, int j, int k) {// 返回对应元素的引用return data[i][j][k];} private:int data[2][3][4]; }; MyArray myArr; myArr(1, 2, 3) 42; // 通过重载的下标运算符访问和修改元素 3.静态运算符函数引入静态operator()使得静态成员函数可以像普通运算符一样被调用增强了代码的灵活性和可读性。 class MathUtils { public:static int operator()(int a, int b) {return a b;} }; int result MathUtils()(5, 3); // 调用静态 operator() 实现加法运算 4. if consteval和if not consteval用于在编译时进行条件判断并执行常量评估的语句可用于优化代码和实现一些编译时的计算逻辑。 consteval int factorial(int n) {if (n 0) return 1;else return n * factorial(n - 1); }constexpr int result1 factorial(5); // 编译时计算阶乘int runtime_value 4; int result2 0; if not consteval {result2 factorial(runtime_value); // 运行时计算阶乘 } 5.扩展的浮点类型新增了std::float{16|32|64|128}_t和std::bfloat16_t等可选的扩展浮点类型为数值计算提供了更多的精度选择。 std::float32_t myFloat32 3.14f; std::float64_t myFloat64 3.14159265358979323846; std::float128_t myFloat128 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679; 二、标准库特性 1.expected头文件与std::expected类型用于处理函数可能返回的预期值和错误将成功和失败的结果封装在单一的返回类型中增强了错误处理的可读性和可维护性。例如在文件读取操作中。 #include expected #include fstream #include iostreamstd::expectedstd::string, std::string readFile(const std::string filename) {std::ifstream file(filename);if (file.is_open()) {std::string content((std::istreambuf_iteratorchar(file)), std::istreambuf_iteratorchar());file.close();return content;} else {return std::unexpected(Error opening file: filename);} }int main() {auto result readFile(test.txt);if (result.has_value()) {std::cout File content: result.value() std::endl;} else {std::cerr Error: result.error() std::endl;}return 0; } 2.generator头文件与std::generator用于创建同步协程生成器方便生成一系列的值简化了异步编程中的数据生成逻辑。 #include generator #include iostreamstd::generatorint generateNumbers() {for (int i 0; i 5; i) {co_yield i;} }int main() {auto gen generateNumbers();for (auto num : gen) {std::cout num ;}std::cout std::endl;return 0; } 3. 范围库的增强新增了多个范围适配器和约束范围算法如views::adjacent、views::adjacent_transform、ranges::starts_with、ranges::ends_with等使对数据序列的操作更加丰富和灵活. #include iostream #include stringint main() {std::string str Hello, World!;bool contains_world str.contains(World);std::cout Contains World? (contains_world? Yes : No) std::endl;std::string_view str_view This is a test;bool contains_test str_view.contains(test);std::cout Contains test? (contains_test? Yes : No) std::endl;return 0; } 4.新的字符串处理方法如std::basic_string::contains和std::basic_string_view::contains方便判断字符串中是否包含特定的子串。 #include iostream #include stringint main() {std::string str Hello, World!;bool contains_world str.contains(World);std::cout Contains World? (contains_world? Yes : No) std::endl;std::string_view str_view This is a test;bool contains_test str_view.contains(test);std::cout Contains test? (contains_test? Yes : No) std::endl;return 0; } 三、其他方面 1.模块系统的改进进一步优化了模块的加载和编译性能新的模块导入语法使模块间依赖关系更明确降低了耦合度有助于提高大型项目的开发效率和代码的可维护性例如在游戏开发项目中可更好地划分和封装不同功能模块. 2.增强的概念Concepts对概念的语法进行了简化和改进使概念定义更清晰易懂能更精确地约束模板参数避免类型不匹配错误在模板元编程中的应用也得到增强提高了代码的灵活性和可复用性. 3.预处理指令的扩展新增了#elifdef、#elifndef、#warning等预处理指令提高了条件编译的清晰度和灵活性. #ifdef _WIN32 // 包含Windows平台相关的头文件 #include windows.h #elifdef __APPLE__ // 包含苹果平台相关的头文件 #include CoreFoundation/CoreFoundation.h #elifdef __linux__ // 包含Linux平台相关的头文件 #include stdio.h #endif 4.UTF-8 源文件编码规定 UTF-8 为可移植的源文件编码确保不同平台上字符表示的一致性. #include iostream #include string void setMenuItemTitle(std::string title) {std::cout 设置菜单标题为: title std::endl; } int main() {std::string frenchTitle Ouvrir;// 法语打开std::string germanTitle Öffnen;// 德语打开std::string chineseTitle 打开;setMenuItemTitle(frenchTitle);setMenuItemTitle(germanTitle);setMenuItemTitle(chineseTitle);return 0; } 在这个例子中无论是法语、德语还是中文的字符串都可以在 UTF - 8 编码的源文件中正确地表示和处理。这使得程序能够更好地适应全球化的需求并且在不同的操作系统和终端设备上只要它们正确地支持 UTF - 8 编码就能够正确地显示这些文本信息。
http://www.dnsts.com.cn/news/145734.html

相关文章:

  • 凡科网站能在百度做推广吗株洲平台公司有几家
  • 湖南企业网站营销设计响应式网站建设推荐乐云践新
  • 乐清站在那儿十元精品店做网站
  • 建设通网站官网登录百度快速收录权限域名
  • icp许可证个人网站网站开发国际化
  • 深圳市福田区住房和建设局如何优化网站代码
  • 网站建设会议报道设计网站推荐 猪
  • 地宝网 网站建设淘宝网网站开发
  • 精美旅游网站案例面试drupal网站开发岗位
  • 个人做动漫资源网站有哪些上海企业查询系统
  • 做视频网站赚钱吗网站备案填写要求吗
  • 做网站需要考虑哪些问题现在宁波做网站
  • 如何免费创建网站平台一般公司网址都怎么写
  • 长春工程建设信息网站中国建设学会查询网站
  • 合肥网站推广优化济南快速网站制作公司
  • 企业综合型网站建设方案宁波网站推广报价
  • 网站建设流程王晴儿html网页开发工具
  • 东莞个人免费建网站网站结构合理
  • 黑龙江建设监理协会网站中国建设银行网上银行网站特点
  • 网站建设 文档下载wordpress 加载jquery
  • 网站目录结构凡客建站官网登录入口
  • 电商网站建设教程怎么创建手机网站
  • 南通仿站定制模板建站织梦网站需要优化
  • 在那个网站做直播好赚钱吗自己注册的公司怎么报税
  • 株洲做网站 省心磐石网络阿里云多网站建设
  • 汕头模版网站建设网站建设怎么在png上写文字
  • 找公司做网站源代码给客户吗wordpress免刷新插件
  • 建设局工程网站百度题库
  • 白城网站建设用帝国cms系统怎么做网站
  • 常熟制作网站的地方在线网页代理极光