文章 2024-03-25 来自:开发者社区

【C++ 17 新功能 std::visit 】深入解析 C++17 中的 std::visit:从原理到实践

1. 引言 1.1 C++17 新特性简介 C++17 是一个标准化的 C++ 语言版本,该版本引入了许多新特性,旨在简化编程任务,提高代码效率,并增强类型安全。从 std::optional(可选值)到 std::filesystem(文件系统操作),这些新特性都体现了现代 C++ 的设计理念:让复杂事物变得简单,而不是简单事物变得复杂。 你可能熟悉 Bjarne St...

文章 2024-03-25 来自:开发者社区

【C++ 17 新特性 std::variant】C++ std::variant 的 深入探讨

1. 引言 在现代C++编程中,std::variant(变体)已经成为了一个不可或缺的工具。但为什么它如此重要?为什么程序员会选择使用它?这背后的原因不仅仅是技术上的,还涉及到人性的深层次需求。 1.1 std::variant 的定义与重要性 std::variant 是C++17引入的一个模板类,它可以存储多种不同类型的值,但在任何时候只能存储其中一种类型的值。从心...

C++ 入门教程开发文档

42 课时 |
18010 人已学 |
免费
开发者课程背景图
文章 2024-03-25 来自:开发者社区

【C++ 17 包裹器类 std::optional】“深入理解C++:std::optional的高级应用与原理

1. 引言 1.1 std::optional的简介 在C++17中,引入了一个新的模板类std::optional(可选类型)。std::optional是一个可以包含值或不包含值的容器。当我们在编程中遇到一个可能不存在的值时,std::optional就派上用场了。 在英语中,我们通常会说 “The std::optional type in C++ represen...

文章 2024-03-25 来自:开发者社区

【C++ 20 并发工具 std::barrier】掌握并发编程:深入理解C++的std::barrier

1. 引言 1.1. std::barrier的定义和作用 在并发编程(Concurrent Programming)中,我们经常需要协调多个线程(Threads)的执行顺序。这就是同步(Synchronization)的概念。C++20引入了一个新的同步工具,名为std::barrier(屏障)。std::barrier是一个同步原语,它允许多个线程在一个特定的同步点(Sync...

文章 2024-03-25 来自:开发者社区

【C++ 17 包裹类 泛型容器 std::any】深入理解与应用C++ std::any:从泛型编程到多态设计

第一章: 引言:std::any的概念和设计目标 1.1 std::any的基本概念 std::any是C++17引入的一个新特性,它是一个类型安全的容器,可以存储任何类型的值。在口语交流中,我们通常会这样描述它:“std::any is a type-safe container for single values of any type”(std::any是一个类型安全的容器...

文章 2023-07-28 来自:开发者社区

命名空间和using namespace std的详解【C++】

命名空间和using namespace std的详解命名空间一.命名空间定义:1.在C语言中只有一个全局作用域:所有的全局标识符共享一个作用域这使得标识符之间可能发生冲突。2.C++中提出了命名空间的概念:命名空间将全局作用域分成不同的部分不同命名空间中的标识符可以同名而不会发生冲突命名空间可以发生嵌套全局作用域也叫默认命名空间二.为什...

文章 2023-06-10 来自:开发者社区

using namespace std 是什么意思——C++命名空间

我们先看一段C代码:#include <stdio.h> #include <stdlib.h> int rand = 0; int main() { printf("%d", rand); return 0; } 1我们直接看可能不会发现问题,但是这段代码是运行不出来的原因就是rand名与stdlib....

using namespace std 是什么意思——C++命名空间
文章 2023-01-07 来自:开发者社区

warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11

 有以下报警: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11  吾见报警,必去之。这个怎么去?根据提示即可。加上编译参数:gcc -std=c&#...

文章 2021-11-14 来自:开发者社区

详谈C++11新特性之future及开源项目ananas(folly,std c++11和ananas的future各自的区别是?)(而)

下面就几种场景展示一下使用ananas future的解决方案。3.使用场景3.1 按顺序向多个服务器发起请求:链式调用服务器需要向redis1拉取玩家基础信息,获得基础信息后,又根据其内容,再向redis2请求获取详细信息。在老式C代码中,使用callback我们一般需要保存上下文,而C++11...

文章 2021-11-14 来自:开发者社区

详谈C++11新特性之future及开源项目ananas(folly,std c++11和ananas的future各自的区别是?)(一)

一、前言1、最早我是从微信公众号看到这篇文章的,了解到开源项目ananas(A C++11/golang protobuf RPC framework)实现了Linux高性能网络库和rpc功能,里面的核心是重写了C++11 future的用法。微信文章的链接是:https://mp.weixin...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。