C++ 11
mqdChalali
热爱生活 热爱编程技术
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 安全释放模板
#ifndef _SAFE_DELETE_H_ #define _SAFE_DELETE_H_ namespace safe_delete{ template void SafeDelete(T *&t){ if(t) { delete t; t = nullptr; } } te原创 2016-12-13 15:44:24 · 728 阅读 · 0 评论 -
C++ 宏定义禁止复制构造函数和赋值函数
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \ TypeName(const TypeName&){} \ void operator=(const TypeName&){};原创 2016-12-13 15:47:53 · 1733 阅读 · 0 评论 -
const和指针搭配时的作用范围
const其实就是为了保证它所描述的变量不能被修改。 直接用代码说明,以下代码仅仅为了证明const和指针在一起时候的作用范围: 1.*p float *p; p = 3; *p = (float*)3; const float* p; *p = 3; //这样不行 p = new float[3]; //这样可以 证明const type * 是指针能原创 2016-11-25 14:10:48 · 555 阅读 · 0 评论 -
类成员函数作为线程参数的用法
1.传统用法: void RunThread(); std::thread* _runThread = new std::thread(std::mem_fn(&LarkVoice::RunThread), this); _runThread->detach(); 2.lambda用法: std::thread *_runThread = new std::thread( [=]原创 2016-12-16 10:49:44 · 859 阅读 · 0 评论 -
Google/glog
glog简介: google 出的一个C++轻量级日志库,支持以下功能: ◆ 参数设置,以命令行参数的方式设置标志参数来控制日志记录行为; ◆ 严重性分级,根据日志严重性分级记录日志; ◆ 可有条件地记录日志信息; ◆ 条件中止程序。丰富的条件判定宏,可预设程序终止条件; ◆ 异常信号处理。程序异常情况,可自定义异常处理过程; ◆ 支持debug功能; ◆ 自定义日志信息;原创 2017-01-19 10:59:38 · 870 阅读 · 0 评论 -
Google/gtest
简介: gtest是一个跨平台(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)的C++测试框架,有google公司发布。 gtest测试框架是在不同平台上为编写C++测试而生成的。 编译: 下载代码: https://github.com/google/googletest windows: 在googletes原创 2017-01-19 11:00:15 · 606 阅读 · 0 评论 -
Google/Mock
本文引用自http://www.tuicool.com/articles/n26rMvy 对于 c++ 来说写单元测试和 mock 框架不是一件容易的事情。还好, Google 为我们搭建了一个出色的单元测试和 mock 框架。网上的例子很多都过多强调概念,本文用一个简单的例子让大家对于什么是 gtest 和 gmock 让大家有一个直观的了解,让大家很快上手,就像写 hello word转载 2017-01-19 11:00:58 · 709 阅读 · 0 评论 -
C/C++跨平台的的预编译宏
https://www.cnblogs.com/foohack/p/5013272.html转载 2018-03-20 15:21:06 · 667 阅读 · 0 评论 -
更安全的std::condition_variable
原生std::condition_variable的notify() 和 wait()有以下特性: 1. 仅支持简单的消息等待和消息发送。 2. 当notify()后于调用wait()的时候,消息会丢失,wait()阻塞。 3. 当wait()接收到一次notify()之后,就再也不会阻塞。 由于我们的业务所需。实现以下功能: 1. 当notify()后于调用wait()的时候,...原创 2018-09-03 10:16:38 · 331 阅读 · 0 评论 -
ringbuf
读写安全的环状buffer。 源码链接:https://github.com/SaberMqd/naive/blob/master/include/naive/ring_buffer.h #ifndef _NAIVE_RINGBUF_H_ #define _NAIVE_RINGBUF_H_ #include <cstring> #include <cstdint> ...原创 2018-09-03 10:31:46 · 406 阅读 · 0 评论 -
读写安全的ringobjbuffer。 可用于做简单的任务队列。
源码地址:https://github.com/SaberMqd/naive/blob/master/include/naive/ring_object_buffer.h 需要C++11支持。 #ifndef _NAIVE_RING_OBJECT_BUF_H_ #define _NAIVE_RING_OBJECT_BUF_H_ #include <cstdint> #inclu...原创 2018-09-03 10:34:55 · 359 阅读 · 0 评论 -
简单的工作线程实现
源码链接:https://github.com/SaberMqd/naive/blob/master/include/naive/work_thread/work_thread.h 原理: new thread( //开启一个线程 while(true){ //无限循环 wait(task) 等待任务 if(ove...原创 2018-09-03 10:47:01 · 642 阅读 · 0 评论 -
share_lock实现
C++17 才支持share_lock。 低版本的需要自己实现。 以下基于C++11实现。 源码的地址:https://github.com/SaberMqd/naive/blob/master/include/naive/share_lock.h #ifndef _NAIVE_SHARE_LOCK_H_ #define _NAIVE_SHARE_LOCK_H_ #ifdef _W...原创 2018-09-03 11:00:39 · 1366 阅读 · 0 评论
分享