clang-tidy/ninja clang-tidy clang-tidy --list-checks # list default checker clang-tidy --list-checks -checks='*' run-clang-tidy.py clang-for… ...更多
gdb 参考自: https://www.cnblogs.com/euphie/p/9781482.html http://blog.chinaunix.net/uid-30038461-id-5136170.html https://blog.csdn.net/faxiang1230/articl… ...更多
invoke_result_t vs result_of_t ...更多
priority_queue lambda 优先级队列priority_queue使用lambda表达式出错问题 以下代码在c++17中报错,c++20中正常 #include <iostream> #include <queue>
int main() {
std:… ...更多
rust 生命周期标记 生命周期和所有权 Rust语言中的 'static 生命周期 &'static T是具有 'static 生存期的引用,或者说无限生存期。 T: 'static 是约束,表示 T 的生存期应当不短于 'static。此时有两种情况: T 包含外部引用,那么其中所有引用… ...更多
cxx-allocator类 allocator new 在灵活性上有一些局限 可以使用allocator类进行更加强大的内存操作 分配器也是标准库的一个话题,我们这一片文章不对分配器的角色进行讨论,仅仅结合标准库的源代码对齐进行简单的剖析以及解释它的一些用法。 双层级配置器,也就是第一级配置器和第… ...更多
std::function std::function std::function是一个函数包装模板,可以包装下列这几种可调用元素类型:函数、函数指针、类成员函数指针或任意类型的函数对象(例如定义了operator()操作并拥有函数闭包)。 std::function对象可被拷贝和转移,并且可以使用… ...更多
限流——漏桶算法和令牌桶算法 限流 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流 缓存:缓存的目的是提升系统访问速度和增大系统处理能力 降级:当服务流量剧增,影响到核心流程的性能,需要暂时屏蔽掉一些功能,待高峰过去或问题解决后再重新打开,以此释放服务器资源以保证核心任务的正常运行。 限… ...更多
负载均衡算法 负载均衡 负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。 负载均衡器可以处理什么样的请求? 负载均衡器的管理员能主要为下面四种主要类型的请求设置转发规则: HTTP HTTPS TCP UDP 负载均衡器如何… ...更多
cxx lvalue,prvalue,xvalue,glvalue和rvalue General 每一个C++表达式(一个操作符和它的操作数,一个字面值,一个变量名等等)都代表着两个独立属性:类型+属性分类。在现代C++中
glvalue(泛左值) = lvalue… ...更多
cxx 强符号弱符号 c++强符号与弱符号
编译器默认函数和初始化了的全局变量为强符号,未初始化的全局变量为弱符号,也可以通过GCC "attribute((weak))"来定义任何一个强符号变为弱符号。 GCC 中,我们也可以通过使用"attribute((weakref))"这个扩展关键字来声… ...更多
移动语义move 移动非引用返回值 没必要使用 std::move() 移动非引用返回值。 C++ 会把 即将离开作用域的 非引用类型的 返回值当成 右值(参考 [sec|值类别 vs 变量类型]), 对返回的对象进行 [sec|移动语义] 移动构造(语言标准);如果编译器允许 [sec|拷贝省略]… ...更多
c++常用库 folly folly/Synchronized.h 简单使用 https://mp.weixin.qq.com/s/hwsEOPbSdGKP-Tc2ICUURQ class RequestHandler { folly::Synchronized<RequestQueue&… ...更多
any optional variant any optional variant std::optional, std::any, 和 std::variant 有一个共同特点:他们都支持就地构造.另外的,std::variant 还支持访问者模式. 首先,我们要了解一下这3种数据类型的功能作用.… ...更多
可变参数模板 可变参数模板 一个可变参数模板就是:一个接受可变数目参数的模板函数或模板类 可变数目的参数被称为参数包。存在两种参数包: 模板参数包:表示零个或多个模板参数 函数参数包:表示零个或多个函数参数 语法格式: 用一个省略号来指出一个模板参数或函数参数表示一个包 在模板参数列表中:class… ...更多
docker 多阶段构建 多阶段构建 Docker v17.05 开始支持多阶段构建 (multistage builds)。使用多阶段构建我们就可以很容易解决前面提到的问题,并且只需要编写一个 Dockerfile: FROM golang:alpine as builder RUN apk --… ...更多
cxx std::enable_shared_from_this std::reference_wrapper()和std::ref() std::reference_wrapper std::reference_wrapper是C++11引入的新特性,定义在 头文件中 template< c… ...更多
cxx new feature c++ new feature https://changkun.de/modern-cpp/zh-cn/02-usability/#if-switch-%E5%8F%98%E9%87%8F%E5%A3%B0%E6%98%8E%E5%BC%BA%E5%8C%96 au… ...更多
cxxFAQ FAQ Why can I access private variables in the copy constructor? The access modifiers work on class level, and not on object level. That is, two… ...更多
gcc option 常用编译参数: -Werror 所有警告变成error -Werror= 所以指定的警告变成error,比如-Werror=switch 意味着受 -Wswitch控制的警告变成error -Wfatal-errors 这个选项使得编译器在遇到第一个error后就终止编译 通过… ...更多