Chillstep 
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 友链
  •   
  •   
C++20 —— 协程

C++20 —— 协程

2024-06-10
C++ C++20 协程
C++20 —— Ranges

C++20 —— Ranges

从一个例子说起12345678910111213141516171819202122232425262728293031323334#include <iostream>#include <ranges>int main(){ auto even = [](int x){return x % 2 == 0;}; for(int x = 1, c

2024-06-10
C++ C++20 Ranges
C++14特性汇总

C++14特性汇总

有关auto函数值可以返回autoauto关键字可以用于函数返回值推导和lambda表达式参数列表的类型推导 12template<typename T>auto foo(T t) { return t; } 甚至这样也可以:有一个退出路径返回了具体类型: 12345auto fabonaci(int n) { if (1 == n || 2 ==

2024-06-10
C++ C++14
C++17特性汇总

C++17特性汇总

C++17特性汇总这里只挑取一些比较感兴趣的话题 结构化绑定Structured Binding 类/结构体: 1234567891011struct B { int a = 1; int b = 2;};struct D1 : B {};auto [x, y] = D1{}; // OKstruct D2 : B

2024-06-10
C++ C++17
记录一个由于GMP参数类型不匹配导致的BUG

记录一个由于GMP参数类型不匹配导致的BUG

记录一个由于GMP参数类型不匹配导致的BUG原因在于一次用GMP的SendObjectMessage时我写了如下代码: 其中SourceActor是一个Actor*类型, Character是一个Character*类型, 代表着 SourceActor把Character的盾击碎。 而在声明这个MessageKey时,由于想到这个MessageKey会被其他两个物体用到,比如炮台A击碎了炮塔B

2023-03-22
UE GMP UE杂记
从C++的POD谈起,到memcpy/memmove的安全性

从C++的POD谈起,到memcpy/memmove的安全性

C++中的POD类型(Plain Old Data)谈起,到memcpy的安全性​ 最近在写代码时恰巧看了下GMP的源码,发现了里面对委托函数的参数类型规定为指针,引用或是pod,其中pod的判断是std::is_pod,那么什么是POD类型呢? ​ 我们知道C++在一定程度上可以说是C的超集,在C中struct不过是一堆数据的合集,但是在c++中,类的概念出现了,它不仅仅是简单的把

2023-02-26
C++
《EffectiveModernC-》第六章-Lambda表达式

《EffectiveModernC-》第六章-Lambda表达式

第六章 lambda表达式Item31:避免使用默认捕获模式lambda一大作用就是简化了谓词繁琐的创建 1std::find_if(container.begin(), container.end(),[](int val){ return 0 < val && val < 10; }); ​ 标题提到: 避免使用默认捕获模式,lambda中

2023-02-25
C++ EffectiveModernCPP
《EffectiveModernC-》第五章-移动语义,完美转发

《EffectiveModernC-》第五章-移动语义,完美转发

第五章 右值引用,移动语义,完美转发Item 23:理解std::move和std::forward这里是一个C++11的std::move的示例实现。它并不完全满足标准细则,但是它已经非常接近了。 123456789template<typename T> //在std命名空间typename remove_reference&l

2023-02-05
C++ EffectiveModernCPP
《EffectiveModernC++》第四章:智能指针

《EffectiveModernC++》第四章:智能指针

第四章 智能指针item18:对于独占资源使用std::unique_ptr对于auto_ptr这个C++98的产物,已经被移除了,他的升级版其实就是unique_ptr, auto_ptr的失败是由于缺少移动语义,具体可以看: https://zhuanlan.zhihu.com/p/551883955 这一节这里不过多描述,以前读过很多相关的了,这里基本的不再提起。这里提几个原文中几个有趣的

2022-12-03
C++ EffectiveModernCPP
《EffectiveModernC++》第三章:移步现代C++

《EffectiveModernC++》第三章:移步现代C++

第三章 移步现代C++item7:区别使用()和{}创建对象12345int x(0); //使用小括号初始化int y = 0; //使用"="初始化int z{ 0 }; //使用花括号初始化 在很多情况下,你可以使用”=”和花括号的组合: 1int z = { 0 };

2022-12-03
C++ EffectiveModernCPP
1234…14

搜索

Hexo Fluid
总访问量 次 总访客数 人