原文:std::variant 原理研究

不知道 variant 的可以先看一下这个:std::variant cppreference.com 数据的存储 因为 variant 跟 union 很像,所以我一开始以为 variant 是在内部创建一块足够大 能存放大小最大的类型 的缓冲区,然后通过 placement new 等方法在缓冲区上操作。然后我就发现有问题,variant 是支持 constexpr 的,但 constexpr ...

2022-03-12 21:53 0 776 推荐指数:

查看详情

std::variant

std::variant C++17增加std::variant实现类似union的功能,但却比union更高级,variant主要是为了提供更安全的union。举个例子union里面不能有string这种类型,但std::variant却可以,还可以支持更多复杂类型,如map等。 std ...

Mon Feb 21 03:05:00 CST 2022 0 684
std::string的拷贝赋值研究

说明:以下涉及的std::string的源代码摘自4.8.2版本。结论:std::string的拷贝复制是基于引用计数的浅拷贝,因此它们指向相同的数据地址。 // std::string类定义typedef basic_string<char> string;template< ...

Fri Mar 15 00:33:00 CST 2019 0 2392
浅谈std::move和std::forward原理 (转)

前言本文主要整理了C++11中std::move和std::forward的原理, 这对理解C++的移动拷贝有很重的意义。 一、左值和右值左值: 一般来说,能在内存中取得其地址, 即是左值。 右值:在内存在无取得其地址的, 即是右值。 note: 左值持久,右值暂短。 左值有持久的状态,一般 ...

Mon Mar 21 19:06:00 CST 2022 0 1349
【译】对Rust中的std::io::Error的研究

原文标题:Study of std::io::Error 原文链接:https://matklad.github.io/2020/10/15/study-of-std-io-error.html 公众号: Rust 碎碎念 翻译 by: Praying 在本文 ...

Thu Dec 31 01:42:00 CST 2020 0 562
多线程std::cout 深入研究

1.研究背景   在测试时发现mingw版本的gcc编译出来的程序,一个主程序新建20个线程,每个线程都循环向cout输出信息,几分钟程序就崩了,而用msvc和gcc-linaro版gcc交叉编译器编译出来的运行很久都没问题。 2.相关查询 2.1 C++ iostreams ...

Tue Aug 25 19:35:00 CST 2020 0 737
boneCP原理研究

** 转载请注明源链接:http://www.cnblogs.com/wingsless/p/6188659.html boneCP是一款关注高性能的数据库连接池产品 github主页 。 不过最 ...

Sat Dec 17 06:18:00 CST 2016 0 1423
std::shared_ptr的工作原理

前戏 先抛出两个问题 如果delete一个指针,但是它真实的类型和指针类型不一样会发生什么? 是谁调用了析构函数? 下面这段代码会发生什么有趣的事情? 看一下 ...

Fri Dec 29 07:41:00 CST 2017 0 4528
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM