自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 C++ 实现自旋锁

C++ 实现自旋锁由于 C++ 标准库没有提供自旋锁, 所以只能我们封装了.这里使用了std::atomic_flag进行封装.class spin_lock{private: std::atomic_flag _atomic;public: spin_lock() noexcept; void lock() noexcept; void unlock() noexcept; bool try_lock() noexcept;};spin_l

2020-11-14 18:31:00 676

原创 C++ Vector 实现内存管理类

C++ Vector 实现内存管理基类注意: 本人是原创, 如若发现雷同,后果自负注意, 将使用C++ 17来实现将使用统一的名称空间custom设计泛化Array_data_base文件名: Array_data.hpp名称空间: custom类名: Array_data包含的头文件: Ref_count.hpp// Array_data.hpp#ifndef ARRAY_DATA_HPP#define ARRAY_DATA_HPP// 使用 Ref_count 类#in

2020-10-10 01:01:55 199

原创 C++ integral_constant 实现

C++ STL type_traits 实现 - integral_constantintegral_constant 是模板元编程的一个重要的类, 它的作用是定义类型的常量.它定义了 bool_constant, true_type 和 false_type.作用C++ 17 之前由于没有变量模板, 我们需要获取结果会使用::value 比如: (is_empty<int>::value), 其实就是继承自integral_constant, 例如 is_same 的实现:templ

2020-10-04 22:22:16 3087 3

原创 实现STL type_traits 头文件

实现STL type_traits 头文件注意: 本人是原创, 如若发现雷同, 后果自负参考网站STL type_traits 头文件为了更了解模板元编程的原理, 我决定实现type_traits头文件注意: 有些只能是编译器内部的实现, 无法使用普通的C++代码实现....

2020-10-04 21:51:19 280

原创 C++ Vector 实现内存管理基类

C++ Vector 实现内存管理基类注意: 本人是原创, 如若发现雷同,后果自负注意, 将使用C++ 17来实现将使用统一的名称空间custom 引用计数类 C++ 高效的容器 - Vector - 实现底层 - 引用计数类 内存管理基类 (这期) 内存管理类 实现 Vector 基础操作 等等…设计分配内存和释放内存引用计数管理使用大小管理已分配的内存文件名: Array_data.hpp名称空间: custom类名: Array_data_base包含的头文件

2020-09-24 18:48:21 235

原创 C++ foreach 实现

C++ foreach注意: 本人是原创, 如若发现雷同, 后果自负C++ 11C++ 11 是直接支持的, 判断__cpp_range_based_for的值, 如果是200907L就是支持#include <iostream>#include <vector>int main(void){ std::vector<int> vec{1,2,3,4,5}; #if __cpp_range_based_for >= 200907L for (

2020-09-24 18:28:11 2510

原创 C++ 高效的容器 - Vector - 实现底层 - 引用计数类

C++ 高效的容器 - Vector - 实现底层 - 引用计数类注意, 将使用C++ 17来实现将使用统一的名称空间custom设计为了实现隐式共享, 将使用引用计数来实现计数成员变量使用原子操作文件名: Ref_count.hpp名称空间: custom类名: Ref_count包含的头文件: cstddef 和 atomic成员类型类型作用count_typestd::size_t计数的类型类型成员变量作用std::atom

2020-09-17 05:13:51 413

原创 C++ 高效的容器 - Vector - 设计

C++ 高效的容器 - Vector - 设计对比STL容器虽然STL容器效率很高(速度), 但是也有缺陷STL缺陷1 - 不能使用下面的语法#include <iostream>#include <vector>// 示例void show_container(const std::vector<int>& container){ std::cout << "Vector { "; for (int val : contain

2020-09-17 04:40:01 449

原创 C++ 判断标准版本和编译器

C++ 判断标准版本和编译器开发环境大部分编译器都支持原理C++ 20 不确定clang 和 gcc 判断__cplusplus__cplusplus的值C++ 17201703LC++ 14201402LC++ 11201103LC++ 03 以下199711Lmsvc 判断_MSVC_LANG_MSVC_LANG的值C++ 17201703LC++ 14201402LC++ 11201103LC

2020-09-15 01:57:50 6612 2

原创 C++ 编译期反射1 - 获取枚举的类型名

C++ 编译器反射1 - 获取枚举的类型名有时我们需要获取类型的信息. 类型名, 枚举值的名, 等等.开发环境:支持 msvc, clang 和g++, 需要C++17以上实现:// enum_info.hpp#include <cstddef>#include <string_view>#include <type_traits>namespace enum_info{namespace details{using string_view

2020-09-14 05:43:19 1676

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除