摘要:https://blog.csdn.net/CodeBowl/article/details/119902935 通过typename ... Args指定变长参数。 通常通过递归展开各个参数, 使用sizeof ... (args)获取变长参数个数。 C++17 可以使用对if后的表达式使用con
阅读全文
摘要:Effective Modern C++ Item 19: use std::shared_ptr for shared-ownership resource Now, the constructor for spw1 is called with a raw pointer, so it crea
阅读全文
摘要:问题:直接通过while(cin>>str), 遇到空格就会停止。比如,输入dfah adfj djfak只能输入前两个单词。 解决: 要读入一整行,需通过getline(cin, inputLine)读入。 按分隔符split字符串,使用getline(stringstream, string,
阅读全文
摘要:Rust智能指针 https://course.rs/advance/smart-pointer/intro.html Box 堆对象分配 Box指针拥有内存对象的独占使用权 (一)使用场景 1. 使用 Box 将数据存储在堆上 fn main() { let a = Box::new(3); pr
阅读全文
摘要:Rust通用集合类型 动态数组Vec 字符串String 和&str 哈希映射HashMap
阅读全文
摘要:Modern C++ ——constexpr的用法 Reference 《现代C++语言核心特性解析》、《深入理解C++11》 为什么引入constexpr const可以定义常量,但也可以用来定义只读变量。const变量的值不一定是在编译期可以确定的,比如当通过函数返回值进行初始化时。 C++标准
阅读全文
摘要:Rust权威指南学习笔记——认识所有权 什么是所有权 1. 所有权规则 Rust中的每一个值都有一个对应的变量作为它的所有者。 在同一时间内,值有且仅有一个所有者。 当所有者离开自己的作用域时,它持有的值就会被释放掉。 2. 变量作用域 s在进入作用域后变得有效。 它会保持自己的有效性直到自己离开作
阅读全文
摘要:https://bbs.huaweicloud.com/blogs/351858
阅读全文
摘要:2.4 成员初始化列表(Member Initialization List) 当你写下一个constructor时,就有机会设定class members的初值。要不是经由member initialization list,就是在constructor函数本体之内。 1. 在下列情况下,为了让你
阅读全文
摘要:2.3 程序转化语意学 #include "X.h" X foo() { X xx; return xx; } 一个人可能会对代码做出以下假设: 每次 foo()被调用,就传回 xx的值。 如果 class X定义了一个 copy constructor,那么当 foo()被调用时,保证该copy
阅读全文
摘要:The Semantics of Constructors 2.2.1 Default Memberwise Initialization(默认的逐成员初始化) 如果class没有提供一个explicit copy constructor又当如何?当class object 以“相同 class 的
阅读全文
摘要:The Semantics of Constructors 2.1 Default Constructor的构造操作 C++新手一般有两个常见的误解: 任何 class如果没有定义默认构造函数,就会被合成出一个来。 编译器合成出来的默认构造函数会显式设定“类内每一个数据成员的默认值”。 2.1.1
阅读全文
摘要:一、定义赋值运算符函数需要注意的问题: 返回值类型声明为引用,并在函数返回前返回*this。因为只有返回引用,才能允许连续赋值。 传入参数应声明为常量引用,否则从形参到实参会多调用一次拷贝构造函数,降低代码效率。赋值运算符函数不会改变传入的实例的状态,因此传入参数应添加const关键字。 是否释放实
阅读全文
摘要:C++ const 一、 语义约束 一个特定的对象不应该被修改,即是只读的。 二、用法 1. 修饰全局范围或命名空间内的静态对象 2. 修饰类的静态或非静态成员 3. 修饰指针或指针指向的数据 const出现在星号左边,则指针所指的内容为只读的。 const出现在星号右边,则指针自身为只读的。 co
阅读全文
摘要:C++性能优化——likely和unlikely分支预测 References C++之likely和unlikely C++ likely-unlikely-directives 一、背景知识:流水线技术 现代CPU为了提高执行指令执行的吞吐量,使用了流水线技术,它将每条指令分解为多步,让不同指令
阅读全文
摘要:C++性能优化 —— __builtin_prefetch()数据预读 References __builtin_prefetch() Prefetching with __builtin_prefetch Data Prefetch 数据预取 数据预读对二分查找的优化 你见过哪些令你瞠目结舌的C/
阅读全文