文章510
标签267
分类66
深入理解C++中的move和forward

深入理解C++中的move和forward

在C++11标准之前,C++中默认的传值类型均为Copy语义,即:不论是指针类型还是值类型,都将会在进行函数调用时被完整的复制一份!

对于非指针而言,开销及其巨大!

因此在C++11以后,引入了右值和Move语义,极大的提高了效率;

本文介绍了在此场景下了两个常用的标准库函数:move和forward;

源代码:


设置vcpkg默认安装64位库

设置vcpkg默认安装64位库

默认情况下,我们在win10下使用vcpkg安装的库都是x86的,对于x64的库,我们还需要手动指定参数;

但是在x64大行其道的现在,我们更希望能默认安装x64的库,此时只需要配置环境变量即可:

  • VCPKG_DEFAULT_TRIPLET=x64-windows

五一假期的一些总结

五一假期的一些总结

流水账似的,记录一下五一假期都干了啥?


C++库之fmt

C++库之fmt

What is object slicing?

What is object slicing?

A method to add string literals in C++

A method to add string literals in C++

For historical reasons, and for compatibility with C, string literals are not standard library strings in C++.

This passage shows a simple way to accomplish this.


深入探讨MySQL查询时字符串尾部存在空格的问题

深入探讨MySQL查询时字符串尾部存在空格的问题

之前在一次MySQL的查询中,偶然间发现了即使在字符串查询条件的后面加空格也能查出数据来!

本文从多个场景对该现象进行了分析;


使用Rust实现一个双向链表

使用Rust实现一个双向链表

如何激怒一个Rust爱好者?让他用Rust实现一个双向链表即可!

总所周知,Rust中是不能同时存在两个可变引用的,所以在Rust中实现双向链表就会变得非常反人类(因为需要同时存在前后节点同时指向对方的情况);

同时,双向链表也引入了循环引用的问题,这也是导致内存难以释放的一个场景;

没想到一个简简单单的双向链表居然涉及如此之多的问题!

本文就使用Unsafe Rust实现了双向链表;

源代码:


一致性Hash算法总结与应用

一致性Hash算法总结与应用

MySQL一致性视图的坑

MySQL一致性视图的坑

我们都知道MySQL中的事务默认情况下隔离级别是可重复读,即别的事务对数据的操作不影响当前事务;

但是这里有一个坑可能会打破你对可重复读的认知;