
C++
文章平均质量分 66
dyw
dyw
展开
-
小测试:boost之shared_ptr在容器类std::list中的使用
一个小测试:在std::list容器中使用shared_ptr,演示了对象的添加与删除的多种方式:通过原始指针(raw pointer)、智能指针(smart pointer)、迭代器(iterator)、boost::enable_shared_from_this等。例子中的代码只做演示用,实际使用时只用其中的部分做法即可,视应用程序的需要而定。在VS2005及boost_1_37_0下编译运行通过。#include #include #include #include #includ原创 2010-09-26 11:05:00 · 5147 阅读 · 1 评论 -
protobuf,thrift,avro之序列化性能测试
简要记述一下protobuf, thrift, avro序列化性能结果。测试fang原创 2014-11-13 11:32:41 · 7434 阅读 · 1 评论 -
使用Mingw32编译boost库
本文简要描述mingw32版编译boost库。原创 2014-08-09 22:46:00 · 4784 阅读 · 2 评论 -
C10K测试:创建1万个长连接
本文描述一下我在Ubunut VBox虚拟机进行C10K原创 2014-09-06 00:55:42 · 2476 阅读 · 0 评论 -
cxx11之atomic、lock、lock-guard性能测试比较
【测试环境】操作系统:Win7SP1CPU:Intel Core原创 2014-06-12 15:08:15 · 1591 阅读 · 1 评论 -
在Android JNI环境下使用C++ Lambda表达式等(附apk包供测试)
前提:需要使用支持更高gcc版本的第三方NDK包。Android默认版本为:4.4.3。第三方NDK包下载(gcc-4.6.3):http://www.crystax.net/en/android/ndk/7具体使用注意事项请参考此文。本测试主要展示以下内容:1、使用std::function和std::bind实现sigslot机制;2、使用C++11的Lambda表达式原创 2012-10-22 18:40:09 · 2761 阅读 · 0 评论 -
在Android JNI环境下使用C++的几个问题与解决
序言在测试tinythread++库在不同移动平台下的可用性时,碰到几个问题。tinythread++号称是兼容c++11标准的thread库,当不能使用c++11时可以使用之。未来c++11更为流行时可轻易更换。不同平台下的测试状况:iOS: 通过。需要将调用c++代码的.m文件更名为.mm文件。 WP: 未知。暂未涉及。Android: 通过。在解决了下面的几个问题之后。原创 2012-10-22 11:45:18 · 4019 阅读 · 0 评论 -
关于boost::property_tree在VS2010下编译的问题
前些时,某编译测试了mongodb的c++客户端接口库,该库依赖于boost_1.42,因此某的mongo NoSQL库的访问接口也用了boost的这个版本。这个版本的boost::property_tree却在VS2010下编译不过,具体症状为:c:\boost\boost\property_tree\detail\ptree_implementation.hpp:30: 错误:C244原创 2011-11-24 21:36:47 · 1435 阅读 · 0 评论 -
mongodb cxx client driver的编译与测试(VS2010 Express)
本文记录了一些mongodb cxx driver的编译与测试过程。使用的主要编译工具为VS2010 Express,项目文件使用了源代码自带的scons和后来自建的qmake版的项目文件。均可顺利编译。scons版的mongoclient.lib在链接某些测试例子时有问题,qm原创 2011-10-15 13:59:19 · 2863 阅读 · 2 评论 -
c++0x的新特性:lambda表达式
(本文摘自c++论坛里自己帖子的回复。)GCC4.5引入这个特性。有兴趣的朋友可以编译测试下面这段代码:#include #include void abssort(float *x, unsigned N) { std::sort(x, x+N,原创 2011-10-11 19:41:19 · 1296 阅读 · 0 评论 -
Qt应用中检测内存泄露——VLD
本文简要描述一下在Qt应用中使用VLD来检测内存泄露。本次测试环境:QtCreator2.3 + Qt4.7.4-vs2008 + VS2008 Express.1、下载并安装:VLD-2.2: http://vld.codeplex.com/链接:http://vld.原创 2011-10-10 20:58:24 · 19964 阅读 · 9 评论 -
排查错误:undefined reference to `libmsvcrt_a_iname'
在移植Cyrus sasl(cyrus-sasl-2.1.23)库时碰到如下问题(使用mingw编译):fu000001.o:(.idata$2+0xc): undefined reference to `libmsvcrt_a_iname'fu000004.o:(.i原创 2011-08-09 15:48:32 · 3144 阅读 · 0 评论 -
[C/C++] 简单有用的enum2string宏
网络中已经有许多有关enum2string的讨论,做法也多种多样(见末尾的附录)。本文也描述一个方法:如何把enum类型变成对应的字符串。不多说了,很简单,一目了然。贴代码://// enum2string macro definition //#define ENUM_STR_BEGIN(name) / const wchar_t* _get##name(long num) / { / switch(num) / { #define ENUM_STR_ITEM(e)原创 2010-09-27 20:12:00 · 6367 阅读 · 1 评论 -
在CentOS6.6下建立c++11开发环境
gcc目前是5.2版,而CentOS6.6自带的是gcc4.4.7。下面记述三种安装方法: (其中两种安装成功,另一种有待验证)1、最容易的方法: 使用devtools2(gcc4.8.2)wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repoyum原创 2015-09-02 19:38:38 · 3067 阅读 · 0 评论