![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
现代c++新特性
文章平均质量分 60
现代c++新特性
宁子希
github地址https://github.com/1589326497?tab=repositories
展开
-
C++右值引用和移动语义
在C++中,我们经常会遇到左值和右值的概念。左值是可以获取地址的表达式,只要是一个变量,那他就一定是个左值。而右值则是临时的,不能赋值,也没有持久的内存地址。在上述代码中,我们创建了一个右值引用a,并将其初始化为10。我们也创建了一个常量左值引用b,并将其初始化为10。原创 2024-02-20 11:49:37 · 610 阅读 · 0 评论 -
C++ 中的 std::stringstream
是 C++ 标准库中的一部分,它提供了一种方便的方式来操作字符串。它可以被视为一个字符串流,我们可以像操作 I/O 流一样来操作字符串。这使得我们可以使用插入运算符()来向流中插入数据和从流中提取数据。是 C++ 中一个非常强大的工具,它提供了一种灵活的方式来处理字符串。原创 2024-02-20 11:16:27 · 660 阅读 · 0 评论 -
C++ 中的单例模式singleton
单例模式是一种设计模式,它限制一个类只能创建一个对象。这个模式通常用于那些需要全局访问点的类,例如配置类或日志类。单例模式是一种常见的设计模式,它可以确保一个类只有一个实例,并提供一个全局访问点。通过理解和掌握单例模式,我们可以编写出更加健壮和灵活的 C++ 代码。原创 2024-02-20 11:12:28 · 527 阅读 · 0 评论 -
C++ 中的 decltype 关键字
decltype是 “declared type” 的缩写,意为 “声明的类型”。它是 C++11 引入的一种新的类型推导机制,用于检查实体的声明类型或表达式的类型和值类别。decltype可以与typedef或using结合使用,用于定义类型。// sizeof(a) 的返回值为 size_t 类型decltype是 C++ 中的一个强大工具,它提供了一种灵活的方式来推导类型,特别是在模板和泛型编程中。原创 2024-02-20 10:55:44 · 535 阅读 · 0 评论 -
C++ 内联和Inline函数
Inline函数是一种特殊的函数,它在被调用时会被编译器替换为函数体的代码,而不是通过常规的函数调用机制来执行。这是通过在函数声明前加上inline关键字来实现的。原创 2024-02-19 14:49:37 · 456 阅读 · 0 评论 -
C++中的constexpr
constexpr是C++中的一个强大工具,它允许在编译时进行计算。通过使用constexpr,你可以编写出更快、更清晰、更易于维护的代码。无论你是在定义编译时常量,还是在编写可以在编译时计算其结果的函数,constexpr都是一个非常有用的工具。原创 2024-02-18 18:25:14 · 388 阅读 · 0 评论 -
C++ 中的 mutable 关键字
总的来说,mutable是C++中一个非常有用的关键字,它可以让我们在const函数中修改成员变量。为我们提供了一种在 Lambda 函数体内部修改捕获变量的方式,同时保持了原始变量的值不变。但是,我们在使用它的时候也需要注意,不要滥用。原创 2024-02-18 16:38:08 · 411 阅读 · 0 评论 -
深入浅出 C++ Lambda表达式:语法、特点和应用
Lambda表达式是一种在被调用的位置或作为参数传递给函数的位置定义匿名函数对象(闭包)的简便方法。是捕获列表,用于指定 Lambda表达式可以访问的外部变量,以及是按值还是按引用的方式访问。捕获列表可以为空,表示不访问任何外部变量,也可以使用默认捕获模式或来表示按引用或按值捕获所有外部变量,还可以混合使用具体的变量名和默认捕获模式来指定不同的捕获方式。是参数列表,用于表示 Lambda表达式的参数,可以为空,表示没有参数,也可以和普通函数一样指定参数的类型和名称,还可以在 c++14 中使用auto。原创 2024-02-18 15:49:21 · 17460 阅读 · 0 评论 -
C++中的原始字符串字面量
在编程语言中,字符串是一种基本的数据类型,用于表示和处理文本。然而,在很多情况下,我们需要在字符串中使用一些特殊字符,比如换行符 ,制表符 ,或者引号 。在传统的C++字符串中,这些特殊字符需要通过反斜杠 进行转义。例如,如果我们想要表示一个包含换行符的字符串,我们需要写成 。然而,这种方式在处理包含大量特殊字符的字符串时会变得非常繁琐。为了解决这个问题,C++11引入了一种新的字符串表示方式:原始字符串字面量(Raw String Literals)。原始字符串字面量是一种特殊的字符串,它会忽略所有的转原创 2024-02-18 14:14:11 · 339 阅读 · 0 评论 -
深入三目运算符:JavaScript、C++ 和 Python 比较
三目运算符是编程中常用的条件表达式,它允许我们根据条件选择不同的值。我们将通过具体的例子分别介绍 JavaScript、C++ 和 Python 中的三目运算符,以便更好地理解它们的用法和特性。JavaScript 示例// 例子: 根据条件选择不同的值var x = 10;var y = 20;"x 大于 y" : "x 不大于 y";在这个例子中,如果x大于y,则result的值为 “x 大于 y”,否则为 “x 不大于 y”。C++ 示例// 例子: 根据条件选择不同的值。原创 2024-01-18 10:30:48 · 402 阅读 · 0 评论 -
模板字符串在JavaScript、Python和C++中的应用
在不同的编程语言中,模板字符串是一种用于处理字符串格式化的技术。在这篇博客中,我们将深入了解在和中模板字符串的应用,以及它们在不同语境下的使用方式和特点。原创 2024-01-18 18:04:15 · 832 阅读 · 0 评论 -
深入理解 C++ 函数指针
函数指针是指向函数的指针,它存储了函数的地址,使我们能够通过指针调用函数。函数指针的声明通常包含函数的返回类型和参数列表,以确保正确的函数调用。上述代码定义了一个名为的类型,它是一个指向接受两个整数参数并返回整数的函数的指针类型。C++ 函数指针是一种强大的工具,通过它,我们可以实现更加灵活和动态的函数调用。理解函数指针的基本概念和用法,对于高效地处理函数回调、创建函数指针数组、实现状态机等场景非常有帮助。原创 2024-01-22 11:53:48 · 618 阅读 · 0 评论 -
理解C++中类内静态函数在类外定义时为何不需再加static关键字
首先,让我们明确一点:在类内部声明静态成员函数只是声明,而不是定义。当我们在类内部声明静态成员函数时,我们只是告诉编译器这个函数是属于这个类的一部分,但并没有提供函数的具体实现。当我们在类的外部定义静态成员函数时,我们需要使用类名和作用域解析运算符来标识函数,告诉编译器这个函数是属于哪个类的。这是因为静态成员函数是与类相关联的,而不是与类的实例相关联的。原创 2024-01-29 21:40:30 · 543 阅读 · 0 评论 -
在C++类中使用FreeRTOS任务-为什么FreeRTOS任务用静态函数
为什么FreeRTOS任务用静态函数在使用FreeRTOS时,任务函数通常是静态的,这是因为FreeRTOS的任务函数需要与C函数指针的形式相匹配。这种匹配要求任务函数必须是静态的或全局的,以确保它们具有固定的地址,从而可以在任务创建时传递给FreeRTOS内核。原创 2024-01-29 22:12:33 · 462 阅读 · 0 评论 -
C++中的类型转换函数
类型转换函数是C++中的一个特性,它允许将当前类的类型转换为其他类型。这个功能只能以成员函数的形式出现,也就是只能出现在类中。其中,operator是C++关键字,type是要转换的目标类型,data是要返回的type类型的数据。例如,如果你有一个名为Complex的类,你可以定义一个类型转换函数将Complex类型转换为doublepublic:// ... 其他成员函数和变量 ...// 返回一个double类型的值在这个例子中,类型转换函数允许Complex对象被当作double。原创 2024-02-18 13:31:33 · 761 阅读 · 0 评论