`
qqsunkist
  • 浏览: 33195 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论
文章列表

定单簿的一种实现

    博客分类:
  • C++
定单簿(Order Book) 的一种实现 定单簿的简单业务背景介绍   最近笔者需要根据业务需要实现一个“快速”的定单簿,首先在此啰嗦一下什么是“定单簿”和有关“定单簿”的一些简单业务场景描述。我们都知道在股票交易的 ...
泛化的bind实用性很强,支持将泛化函数(函数、函数指针、仿函数、与成员函数)与运行期实参的动态绑定;在实际工程中也经常作为基础工具集之一被频繁地使用;我计划投入一定的精力,仔细阅读boost库中的基础工具集的代码实现(bind是第一个);旨在了解这些工具的内部实现机理同时也提高下自己的C++语言泛型编程技术,以备后续的实际工程中使用;   2005年,Andrei Alexandrescu就在他的C++巨著《C++设计新思维中》中的5.10节中提出了泛型化的函数绑定;bind的实现目标非常明确,就是在运行期实现针对泛化函数任意类型、任意个数的实参进行绑定;形式如下: bind(f, ...
再探小型对象分配技巧(Small-Object Allocation) /*  * References, 参考文献:  * [1]. Alexandrescu, Andrei. "Modern C++ Design: Generic Programming and Design   * Patterns Applied". Copyright (c) 2001. Addison-Wesley.  *  * 本文研究的源代码取自loki库SmallObj.h & SmallObj.cpp   */   #include <boost/progr ...
模板使用技巧基础 这篇文章主要记下实际工程中使用模板的一些基本技巧,其中主要包括typename关键字的使用,定义模板成员函数,定义嵌套类模板,双重模板类型参数(template template parameter),以及零值初始化的技巧。   一、关键字typename 关键字typename是C++标准化过程中被引入的,目的是告诉编译器模板类型参数或者其内的某个标识符是个类型。 template <typename T> class MyClass{ public: typename T::subtype *ptr;   ... ... };  第 ...
STL容器默认的内存分配器(std::alloc) STL中的容器类的class templates,最后一个template parameter就是alloc,而默认值便是std::alloc。对象构造前的空间配置与对象析构后的空间释放,由<bits/stl_alloc.h>负责,SGI设计此库时,主要有以下几个考虑因素: 向heap申请空间 考虑线程安全 内存不足时的应变措施 考虑因“小内存区块”的释放后可能造成的内存碎片(fragment)问题 考虑到当前目标是要了解std::alloc的功能逻辑与实现结构,所以为了简单明了一些,(2.)线程安全先排除不做考虑。 ...

cppcms中的session

问题: 如果打开cppcms的reference文档,在吹泡泡cms::sessions namespace下存在如下几个类: class   encryptor;  // 泛型session cookies 加密接口.  class   encryptor_factory;  // 顾名思义,建立新加密器的接口 class   session_cookies; // 使用加密的或者签名的cookies的session_api实现。 class   session_dual; // session_api的客户端和服务器端存储实现 class   session_si ...

理解cppcms中的form

问题: cppcms中form如何使用呢?官网上,除了教学篇-5之外,再无其他关于form使用的帮助文档了。当然,还有另外两种办法,就是看reference api文档和源代码。但是每次在使用form之前,或者长时间不用cppcms都使用后面两种办法自 ...
问题:如何理解CPPCMS application中的dispatcher()和mapper().  #include <cppcms/application.h> #include <cppcms/applications_pool.h> #include <cppcms/service.h> #include <cppcms/http_response.h> #include <cppcms/url_dispatcher.h> #include <cppcms/url ...
问题描述: cppcms事实上一个mvc的web架构,其中一个重要组成部分就是view-html rendering系统。cppcms的网页是用特殊的template语言编写,编写后的网页可以由翻译器(cppcms_tmpl_cc)翻译成c++代码,最后可以由编译器编译成shared object ...
每每安装开源软件的时候,最头痛的就是编译安装的过程中出现了编译错误。有时看到大篇幅的编译错误时,就不知道该从哪下手修正错误了。这也许就是开源软件相对于商业软件难于普及的一个重要原因吧。   问题描述:cppd ...
问题描述:按照官网的步骤,进行如下操作 1. tar xzvf cppcms-1.0.1.tar.gz 2. cd cppcms-1.0.1 3. mkdir build 4. cd build 5. cmake -DCMAKE_INSTALL_PREFIX=/opt/local .. 编译过程中,出现了如下错误信息   Linking CXX shared library libbooster.dylib         Undefined symbols for architecture x86_64:       ...
一、class template定义 #include <vector> #include <stdexcept> template <typename T> class Stack { private: std::vector elems; public: void push(const T&amp;); void pop(); T top() const; bool empty() const { return elems.empty(); ...
一、定义 Function Template   template <typename T> inline const T& max(const T& a, const T& b) { return a<b ? a : b; }  二、参数推导 当使用某一类型的参数调用max()时,模板参数(template parameter)将以调用参数的类型确 ...
在前三篇中我说明了有效创建一个类的前4个考虑步骤,现在就差最后一步了,考虑创建与类定义有关的异常类。 异常的概述 用户调用某个函数,函数可以在运行时检测到错误,但是不知道如何处理;用户呢,实际上知道在遇 ...
4. 类成员函数(改变第2种的) 设计类改变成员变量的成员函数,需要考虑的因素非常多,但是这些因素大致可以分为两类:一类是比较通用的,另一类呢就是有类体系的前提; (1)是否真需要成为成员函数 (2)是否有必要返 ...
Global site tag (gtag.js) - Google Analytics