分类: C++

[C++11] C++11 中的回调

之前写 Java 和 OC 非常羡慕其中的回调机制,之前的博客也介绍了一个使用 fast delegate 回调的 C++ 机制(参见:[C++] 简单高效的 delegate 方法)。现在 C++11 已经普及了,也同样支持了回调,虽然比高阶的语言 Java 和 OC 之类还稍显繁琐,但是基本功能已经都有了,这里简单说明如下。 1、回调基本函数 在 C++11 中使用 std::function 定义回调函数和参数类型,使用 std::bind 绑定回调函数。示例如下: C++ #include...

[Ubuntu] 编译&使用 curl 库进行简单网络请求

当使用C++做HTTP客户端时,目前通用的做法就是使用libcurl。其官方网站的地址是 http://curl.haxx.se/,该网站主要提供了Curl和libcurl。Curl是命令行工具,用于完成FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP的命令的请求及接收回馈。libcurl提供给开发者,用于使用C++跨平台的开发各种网络协议的请求及响应。里面的文档非常齐全,不过都是英文的。 0、系统环境: Ubuntu 14.04 curl v7.46.0 1、编译 libcurl 库: 1)下载 curl 源码: Shell git clone https://github.com/bagder/curl.git 1 git clone https://github.com/bagder/curl.git 或者使用我网盘里面的代码: http://pan.baidu.com/s/1dDMNrKt 2)检查 curl 依赖项是否安装: Shell sudo apt-get...

[C++] 简单高效的 delegate 方法

使用 Objective-C 或者 Java 的都对其中的 delegate 方法印象很深,而在我们经常使用的 C++ 中虽然也有所谓的 Callback,但是似乎还挺麻烦的。有没有一个更好的实现方法呢?有的,国外的《Member Function Pointers and the Fastest Possible C++ Delegates》这篇文章就给了我们一个简单方便的实现库。 原理在作者的文章中已经讲得很详细了,我们这里简单讲一下使用方法: C++ #include <iostream> #include "FastDelegate.h" using namespace fastdelegate; // If you want...