C++完美转发与std::forward

初次遇到std::forward是在阅读std::make_shared源码时看到的,当时不少很能理解为什么这可以达到完美转发的目的。这里来总结一下。 引用折叠std::forward的出现是因为C++11右值语义的出现,而有时候我们需要写下面的代码进行参数的转发。 template<class T> void foo(T&& arg) { ...     阅读全文
vhyz's avatar
vhyz 9月 13, 2018

造shared_ptr轮子时需要注意的几点

最近在写智能指针shared_ptr的实现,本以为是一个比较简单的轮子,但其实内部实现是比较复杂的,总的来说总共有以下几项。 内部数据结构的实现shared_ptr有两个私有成员,一个为指向对象指针,另一个为引用计数块的指针。 我刚开始以为内部只是一个指向对象指针和一个引用计数(比如size_t)的指针,其实内部构造并不是这么简单,智能指针shared_ptr需要满足下面几点。...     阅读全文
vhyz's avatar
vhyz 7月 28, 2018