代码改变世界

随笔分类 -  boost

关于C++实现的Singleton收集 2

2013-01-20 23:22 by Scott Guthrie Liu, 183 阅读, 收藏,
摘要: boost的singletonhttp://www.cnblogs.com/fullsail/archive/2013/01/03/2842618.htmlhttp://leoxiang.com/dev/different-cpp-singleton-implementaionView Code // 实现基于以下假设:良好的设计在进入main函数之前应该是单线程的,// 因此可以使用全局变量的方式来设计singleton,// 并且保证在使用该singleton之前其已经被正确的初始化。 template <typename T>class Singleton{public: s 阅读全文

关于C++实现的Singleton收集

2013-01-18 10:54 by Scott Guthrie Liu, 571 阅读, 收藏,
摘要: http://www.cppblog.com/Fox/archive/2009/09/22/96898.html本文同步自游戏人生以前曾经讨论过Singleton的实现,这次在对照ACE和Boost代码的时候,又重新审视了一下二者对Singleton不同的实现。其间的差别也体现了不同的编程哲学:ACE的实现更加偏重多线程中的安全和效率问题;Boost的实现则偏重于使用语言自身的特性满足Singleton模式的基本需求。o ACE的实现Douglas C. Schmidt在Double-Checked Locking: An Optimization Pattern for Efficientl 阅读全文

Boost Conversion Library polymorphic_cast polymorphic_downcast lexical_cast

2012-12-27 11:56 by Scott Guthrie Liu, 196 阅读, 收藏,
摘要: #include <boost/cast.hpp> polymorphic_cast polymorphic_downcast<boost/lexical_cast.hpp>lexical_castbad_lexical_castint main(int argc, char * argv[]){ using boost::lexical_cast; using boost::bad_lexical_cast; std::vector<short> args; while(*++argv) { try { args... 阅读全文

[转]读《Boost程序库完全开发指南》

2012-12-26 21:02 by Scott Guthrie Liu, 524 阅读, 收藏,
摘要: http://dearymz.blog.163.com/blog/static/2056574201141883716608/C++确实很复杂,神一样的0x不知道能否使C++变得纯粹和干爽? boost很复杂,感觉某些地方有过度设计和太过于就事论事的嫌疑,对实际开发工作的考虑太过于理想化。学习boost本身就是一个复杂度,有魄力在项目中广泛采用boost复杂度会再加一层,抓狂的编译时间,井喷式的编译错误,运行时崩溃后的咒语式堆栈…… 其中好的东西还是值得用的,但凡事有个度。如果将应用做到boost这个级别了,要么你很牛,要么你在装。 用不用,看看还是有好处的。建议中高级以上C++程序员了解bo 阅读全文

auto_ptr scoped_ptr shared_ptr weak_ptr unique_ptr

2012-12-26 14:15 by Scott Guthrie Liu, 486 阅读, 收藏,
摘要: 1.auto_ptrC++98 出现,已经被废了,可以所有权的自动转让,不能作为容器元素。2.scoped_ptr boost中类似auto_ptr只希望在本作用域里使用,不希望被转让。拷贝构造函数和赋值构造函数都为private。3.shared_ptr C++11中出现,引用计数型指针,各种赞美啊。make_shared、allocate_shared的使用避免了new泛滥 实际增加了很小的计数的空间。多线程不完美。4.weak_ptr被设计为与shared_ptr共同工作,可以从一个shared_ptr或者另一个weak_ptr对象构造,获得资源的观测权。但weak_ptr没有共享资源. 阅读全文

Boost.Date_Time 使用

2012-12-26 11:45 by Scott Guthrie Liu, 220 阅读, 收藏,
摘要: Date ProgrammingView Code #include <boost/date_time/gregorian/gregorian.hpp>using namespace boost::gregorian;;int main(){ date d1(2002,Feb,1),d3, d4(2002,Feb,1); date weekstart(2002,Feb,1); date weekend = weekstart + weeks(1); date d2 = d1 + days(5); date today = day_clock::local_day... 阅读全文

boost 库之时间处理 (cpu_timer auto_cpu_timer)(timer,progress_timer, progress_display)

2012-12-25 23:31 by Scott Guthrie Liu, 363 阅读, 收藏,
摘要: boost目前推荐cpu_timer auto_cpu_timer#include <boost/timer/timer.hpp>View Code #include <boost/timer/timer.hpp> #include <memory> #include <vector> #include <string> #include <iostream> using namespace std; using namespace boost::timer; vector<string> createVect 阅读全文

VS2012 下编译boost1.52

2012-12-25 20:35 by Scott Guthrie Liu, 1816 阅读, 收藏,
摘要: 1. 下载boost_1_52_0.7z http://sourceforge.net/projects/boost/files/boost/1.52.0/2. 解压缩到d:\boost目录下3. 编译bjam(1)从开始菜单运行“VS2012 开发人员命令提示”(2)cd到D:\boost\boost_1_52_0下执行bootstrap.bat,然后,会在D:\boost\boost_1_52_0下生成bjam.exe4.设定编译环境 我的机器上仅安装了VS2012所以未配置5.编译boost库 本人使用的bjam命令如下:bjam stage --toolset=msvc-11.0 -. 阅读全文