wpcockroach

导航

随笔分类 -  Programming

1

以太坊Bootstrap和Kademlia算法实现逻辑简介(基于cpp-ethereum)
摘要: 阅读全文

posted @ 2018-12-03 09:56 wpcockroach 阅读(436) 评论(0) 推荐(0)

一个C++右值引用的问题
摘要:暂时先不更新前一篇文章了,感觉那个文章要写好久。累死。 今天说一说C++右值引用的一个问题。 这个问题的发现也是很偶然的。 来一段毫无意义但是能证明问题的代码: 请问控制台输出神马? 自己跑一跑看一看,然后咱们下一个结论: !!返回值不要搞成右值引用的样子!! 当然了,在这个简单的案例里面,你还能看 阅读全文

posted @ 2018-08-22 22:25 wpcockroach 阅读(224) 评论(0) 推荐(0)

剖析一个用C++写的行情交易系统
摘要:最近hen ci hen ci用C++写完了一整套证券行情系统,但是不是服务沪深交易所的,是给文交所用的。整个系统涵盖了从DBF文件解析开始到客户端展现这一整条逻辑。想来一年多没有更新博客了,所以趁这个机会,把整个系统的架构和开发中遇到的问题写下来,权当总结和分享。 首先要说明的是,整个系统的架构都 阅读全文

posted @ 2018-08-20 23:14 wpcockroach 阅读(4259) 评论(0) 推荐(0)

C++ Coroutine简明教程
摘要:在C++里,一个函数如果其函数体实现中包含co_await、co_yield、co_return中任何一个关键字,那么这个函数就是一个coroutine。其中: 一个coroutine要能被编译期识别并通过编译,在某些情况下要自己去特化coroutine_traits。下面就一个简单的corouti 阅读全文

posted @ 2017-08-21 11:34 wpcockroach 阅读(10229) 评论(0) 推荐(2)

Visual C++没事别启用/Za编译选项
摘要:Visual C++对于C++标准的支持不是很完善好像是钦定了的。MS还特意在这里说了些非标准行为[1]以及扩展行为[2]。这就不可避免地会让处女座程序猿感到难受(我不是处女座)。所以,经过一番google/bing之后,你会找到一个很好的VC++编译选项/Za。 我们先来看看/Za选项是什么意思: 阅读全文

posted @ 2017-08-09 13:00 wpcockroach 阅读(821) 评论(0) 推荐(0)

智能指针和前置声明之间的小问题
摘要:对比Go等其他语言的工程,C++工程让人痛苦的一件事情就是当工程稍微庞大一点,编译时间就蹭蹭蹭往上爬。一般来说看过Effective C++这本书或者其他类似书籍的人都知道要解决编译时长的问题,就要解决好和头文件之间的依赖关系。所以在任何必要的时候要首先考虑使用前置声明而不是之间include头文件 阅读全文

posted @ 2017-08-04 11:51 wpcockroach 阅读(2671) 评论(0) 推荐(0)

C++多线程环境下的构造函数
摘要:多线程的环境里,我们总不可避免要使用锁。于是一个常见的场景就是: 问题 多线程环境下该如何实现拷贝构造函数和移动构造函数呢? 要实现默认构造函数,没有挑战。使用成员初始化列表就可以: ObjectWithLock() : mtx_(), shared_res_() {} // 如果SomeResTy 阅读全文

posted @ 2014-08-17 12:45 wpcockroach 阅读(2247) 评论(1) 推荐(0)

Data Binding和INotifyPropertyChanged是如何协调工作的?
摘要:前言 WPF的一大基础就是Data Binding。在基于MVVM架构的基础上,只有通过实现INotifyPropertyChanged接口的ViewModel才能够用于Data Binding。 要实现INotifyPropertyChanged接口,只需要实现一个事件,event Propert 阅读全文

posted @ 2014-08-13 02:00 wpcockroach 阅读(6343) 评论(0) 推荐(5)

简单几句话总结Unicode,UTF-8和UTF-16
摘要:概念 先说一说基本的概念,这包括什么是Unicode,什么是UTF-8,什么是UTF-16。 Unicode,UTF-8,UTF-16完整的说明请参考Wiki(Unicode,UTF-8,UTF-16)。用比较简单的话来说就是,Unicode定义了所有可以用来表示字符的数值集合(称之为Code Po 阅读全文

posted @ 2014-08-12 14:57 wpcockroach 阅读(39606) 评论(0) 推荐(1)

shared_ptr和多线程
摘要:前一篇文章写得实在太挫,重新来一篇。 多线程环境下生命周期的管理 多线程环境下,跨线程对象的生命周期管理会有什么挑战?我们拿生产者消费者模型来讨论这个问题。 实现一个简单的用于生产者消费者模型的队列 生产者消费者模型的基本结构如下图所示: 如果我们要实现这个队列该怎么写?首先我们先简单挖掘下这个队列 阅读全文

posted @ 2014-03-19 16:39 wpcockroach 阅读(8333) 评论(1) 推荐(0)

shared_ptr:资源管理利器
摘要:如果你还在使用传统的C++,那么可以肯定堆内存的管理让你头痛过!在传统的C++领域,堆内存管理上我们能借用的现成工具就只有auto_ptr。但是很不幸用auto_ptr管理堆内存简直就是个错误。auto_ptr的问题可以归结为两点: 既然auto_ptr这么不好,那我们还有其他的选择么?这得感谢bo 阅读全文

posted @ 2014-02-24 20:25 wpcockroach 阅读(1715) 评论(1) 推荐(0)

也来说说C/C++里的volatile关键字
摘要:去年年底的样子,何登成写了一篇关于C/C++ volatile关键字的深度剖析blog(C/C++ Volatile关键词深度剖析)。全文深入分析了volatile关键字的三个特性。这里不想就已有内容再做一遍重复,而是再提供一些自己的看法,以完善对volatile的全面认识。 前文一个很好的例子就是 阅读全文

posted @ 2014-01-11 21:10 wpcockroach 阅读(2962) 评论(0) 推荐(0)

函数、成员函数、友元函数:他们该以什么样的准则出现在我们的代码中?
摘要:终于可以在工作之余可以整理整理自己的知识网络了。最近正在花时间看别人整理好的关于C++ Idioms的相关内容,期间看到了Meyers关于如何界定你的函数应该是一个普通的函数,还是成员函数或者友元函数。牛人总结得就是到位,顺带就帖在这里。不过感觉没啥好解释的。 Given a class T and 阅读全文

posted @ 2013-10-08 11:45 wpcockroach 阅读(304) 评论(0) 推荐(0)

BEGIN_TEMPLATE_MESSAGE_MAP
摘要:最近转做服务端开发,或多或少有点坑爹的感觉。目前正在恶补Linux C/C++编程,主要还是集中在Linux系统API的学习。不过也好,以后更新的内容不仅仅只有Windows了。 今天说一点简单的东西,还是MFC的。不知道有多少人用过BEGIN_TEMPLATE_MESSAGE_MAP,没用过的可以 阅读全文

posted @ 2013-08-15 14:33 wpcockroach 阅读(1771) 评论(0) 推荐(0)

说一说vector<bool>
摘要:vector<T>标准库模版类应该是绝大多数c++程序员使用频率比较高的一个类了。不过vector<bool>也许就不那么被程序员所了解。关于vector<bool>不尝试研究一番,一般还不太容易知道其中蕴含的问题。 首先得明确一点,那就是vector<bool>是vector<T>的特化版。这个特 阅读全文

posted @ 2013-07-09 11:50 wpcockroach 阅读(22124) 评论(0) 推荐(1)

基于Windows APC写一个简单的多线程并发库
摘要:Windows APC 首先我们要知道什么是APC。APC的全称是Asynchronous Procedure Call,异步过程调用。MSDN链接请猛击这里。用简短的话来总结就是: 每一个线程都有一个APC队列 APC分两种,分别是kernel-mode APC和user-mode APC 通过调 阅读全文

posted @ 2013-05-17 22:50 wpcockroach 阅读(2287) 评论(0) 推荐(0)

自定义消息中如果需要定义WPARAM和LPARAM,该怎么使用和分配?
摘要:写Windows程序不可避免要使用自定义的消息,也就是从WM_USER开始定义的消息。在定义一个消息后,往往我们还要定义针对该消息的WPARAM甚至是LPARAM。WPARAM和LPARAM是什么,可以参考MSDN的SendMessage或者WindowProc。归结成一点就是对应消息的额外附带信息 阅读全文

posted @ 2013-05-15 16:07 wpcockroach 阅读(2224) 评论(0) 推荐(0)

GDI资源使用上需要注意的一点
摘要:Win32编程中GDI相关的东西肯定是每个程序员都要接触的东西,如果平时项目还是以MFC为基础的话,那就更不必说了。但是即便如此要用好GDI还是非常不容易的一件事情。 想必每个MFC的程序员可能都接触过CPPToolTip这个开源库工具,不得不说这是一个用起来很不错的tip工具类。但是要如何用好却也 阅读全文

posted @ 2013-04-15 23:50 wpcockroach 阅读(933) 评论(0) 推荐(0)

Concurrency vs. Parallelism: The Difference
摘要:最近在看一些并行编程相关的内容,经常碰到两个单词:concurrency和parallelism。一直没有搞明白这两个词到底啥区别,总感觉是一样的。所以,google是必须的。不过不管是Stack Overflow还是其他搜索结果,个人总觉得说明得不够让人好理解。今天看书,算是看到一份个人觉得非常完 阅读全文

posted @ 2013-01-29 19:17 wpcockroach 阅读(951) 评论(5) 推荐(0)

基于HWND的Win32 UI自动化
摘要:做了好一阵子的UI自动化,今天来总结总结。先说比较简单一点的以HWND为基础的Win32 UI自动化。 很多人的UI自动化应该是从自动化HWND开始,总体来说入门比较简单,至少接触的都是Win32 API,而且可以不用接触COM相关的东西。说了那么久,进入正题。 UI自动化,至少要处理下面几样东西: 阅读全文

posted @ 2012-09-28 01:56 wpcockroach 阅读(2630) 评论(0) 推荐(0)

1