Boost学习笔记(一) 什么是Boost】的更多相关文章

boost 学习笔记 2: timer copy from:http://einverne.github.io/post/2015/12/boost-learning-note-2.html 1:timer 头文件 timer 位于boost命名空间,需要包含头文件 <boost/timer.hpp> 即: #include <boost/timer.hpp> using namespace boost; 基本方法 timer变量声明之后即开始计时工作,之后可以调用 elapsed…
boost 学习笔记 0: 安装环境 最完整的教程 http://einverne.github.io/post/2015/12/boost-learning-note-0.html Linux 自动安装boost sudo apt-get install libboost-all-dev Linux 手动安装boost 下载 boost_1_60_0.tar.bz2 解压 tar –bzip2 -xf /path/to/boost_1_60_0.tar.bz2 一部分组件(Header-Onl…
BOOST学习笔记 1 tool #pragma once #include <vector> #include "boost/noncopyable.hpp" #include "boost/typeof/typeof.hpp" #include "boost/serialization/singleton.hpp" #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() using…
date_time库的日期基于格里高利历,支持从1400-01-01到9999-12-31之间的日期计算 #define BOOST_DATE_TIME_SOURCE #include <boost\date_time\gregorian\gregorian.hpp> #include <boost\assert.hpp> using namespace boost::gregorian; int main() { date d1; //一个无效的日期 boost::gregori…
progress_timer也是一个计时器,它继承自timer,会在析构时自动输出时间,省去timer手动调用elapsed()的工作,是一个用于自动计时相当方便的小工具. #include <boost\timer.hpp> #include <boost\progress.hpp> #include <iostream> using namespace boost; using namespace std; int main() { boost::progress_…
progress_display可以用作基本的进度显示,但它有个固有的缺陷:无法把进度显示输出与程序的输出分离. 这是因为progress_display和所有C++程序一样,都向标准输出(cout)输出字符,如果使用progress_display的程序也有输出操作,那么progress_display的进度显示就会一片混乱. 一个解决办法是每次显示进度时都调用restart()重新显示进度刻度,然后用operator+=来指定当前进度,而不是简单的调用operator++ #include…
progress_display可以在控制台显示程序的执行进度,如果程序执行很耗费时间,那么它能够提供一个友好的用户界面 #include <boost\timer.hpp> #include <boost\progress.hpp> #include <boost\progress.hpp> #include <vector> #include <fstream> #include <boost\static_assert.hpp>…
timer库概述 timer库包含三个组件:分别是计时器类timer.progress_timer和进度指示类progress_display timer 主要作用是计时,精确度是毫秒级.下面是一个简单的例子 #include <boost\timer.hpp> #include <iostream> using namespace boost; using namespace std; int main() { timer t; //声明一个计时器,开始计时 cout<&l…
Boost库是一个功能强大.构造精巧,跨平台.开源并且完全免费的C++程序库…
参考原著地址:http://einverne.github.io/post/2015/12/boost-learning-note-1.html 转换对象要求 lexical_cast 对转换对象有如下要求: 转换起点对象是可流输出的,即定义了 operator« 转换终点对象是可流输入的,即定义了 operator» 转换终点对象必须是可缺省构造和可拷贝构造的 C++中内建类型(int,double等)和std::string 都是符合三个条件的. #include <boost/lexica…
学习是一个累积的过程.在这个过程中,我们不仅要学习新的知识,还需要将以前学到的知识进行回顾总结. 前面讲述了Python使用ctypes直接调用动态库和使用Python的C语言API封装C函数, C++写python扩展模块有很多种方式,我选择的是boost.python来编写的,感觉这个要比其他的方式要简单很多,本文概述方便封装C++类给Python使用的boost_python库. : sudo aptitude install libboost-python-dev 示例 下面代码简单实现…
#include <vector>#include <iostream>#include <boost/uuid/uuid.hpp>#include <boost/uuid/uuid_generators.hpp>#include <boost/uuid/uuid_io.hpp>using namespace boost::uuids;using namespace std;int main(){ //----------------------…
构造函数 构造函数的主要动作就是调用CreateIoCompletionPort创建了一个初始iocp. Dispatch和post的区别 Post一定是PostQueuedCompletionStatus并且在GetQueuedCompletionStatus 之后执行. Dispatch会首先检查当前thread是不是io_service.run/runonce/poll/poll_once线程,如果是,则直接运行. poll和run的区别 两者代码几乎一样,都是首先检查是否有outstan…
多线程编程中还有一个重要的概念:Thread Local Store(TLS,线程局部存储),在boost中,TLS也被称作TSS,Thread Specific Storage.boost::thread库为我们提供了一个接口简单的TLS的面向对象的封装,以下是tss类的接口定义: class tss{public:    tss(boost::function1<void, void*>* pcleanup);    void* get() const;    void set(void*…
barrierbarrier类的接口定义如下:  1 class barrier : private boost::noncopyable   // Exposition only 2 { 3 public: 4   // construct/copy/destruct 5   barrier(size_t n); 6   ~barrier(); 7  8   // waiting 9   bool wait();10 }; barrier类为我们提供了这样一种控制线程同步的机制:前n - 1次…
下面先对condition_impl进行简要分析.condition_impl在其构造函数中会创建两个Semaphore(信号量):m_gate.m_queue,及一个Mutex(互斥体,跟boost::mutex类似,但boost::mutex是基于CriticalSection<临界区>的):m_mutex,其中:m_queue相当于当前所有等待线程的等待队列,构造函数中调用CreateSemaphore来创建Semaphore时,lMaximumCount参数被指定为(std::nume…
除了thread,boost种:boost::mutexboost::try_mutexboost::timed_mutexboost::recursive_mutexboost::recursive_try_mutexboost::recursive_timed_mutex下面仅对boost::mutex进行分析.mutex类是一个CriticalSection(临界区)封装类,它在构造函数中新建一个临界区并InitializeCriticalSection,然后用一个成员变量void* m_…
thread自然是boost::thread库的主 角,但thread类的实现总体上是比较简单的,前面已经说过,thread只是一个跨平台的线程封装库,其中按照所使用的编译选项的不同,分别决定使用 Windows线程API还是pthread,或者Macintosh Carbon平台的thread实现.以下只讨论Windows,即使用 BOOST_HAS_WINTHREADS的情况.thread类提供了两种构造函数:thread::thread()thread::thread(const func…
socket连接中需要判断超时 所以这几天看了看boost中计时器的文档和示例 一共有五个例子 从简单的同步等待到异步调用超时处理 先看第一个例子 // timer1.cpp: 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include <boost/asio.hpp> #include <boost/date_time/posix_time/posix_time.hpp> v…
Bolg转载自:http://www.cnblogs.com/lvdongjie/p/4447193.html 一: 创建线程 #include <iostream> #include <boost/thread/thread.hpp> #include <boost/thread/xtime.hpp> struct MyThreadFunc { void operator( )() { // Do something long-running... } } threa…
noncopyable 功能 同意程序轻松实现一个不可复制的类. 需包括头文件 #include<boost/noncopyable.hpp>     或 #include<boost/utility.hpp> 原理 在c++定义一个类时.假设不明白定义复制构造函数和复制赋值操作符.编译器会为我们自己主动生成这两个函数. 比如 class empty_class{ } : 实际上类似于 class empty_class { public: empty_class(const em…
boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Python代码的交互. 使用Boost.python有什么特点? 不需要修改原有的C++代码,支持比较丰富的C++特性.不会生成额外的python代码(像SWIG那样),但是需要写一部分C++的封装代码. 我只用到了其功能的一部分,把C/C++实现的功能封装为可供python直接调用的.so库.具体场景是…
想要彻底搞懂C++是很难的,或许是不太现实的.但是不积硅步,无以至千里,所以抽时间来坚持学习一点,总结一点,多多锻炼几次,相信总有一天我们会变得"了解"C++. 1. C++标准库——STL 1.1 STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R Musser在惠普实验室工作时所开发出来的. STL的代码从广义上讲分为三类:algorit…
我是Word写的,复制过来实在懒得在排版了,有兴趣的朋友可以去我的百度文库看,谢谢 http://wenku.baidu.com/view/34e485e2f61fb7360b4c653e.html Boost使用笔记(Smart_ptr) 概述 Boost库是一个功能强大.构造精巧.跨平台.开源免费的C++程序库,提供了代码编写中所需要的几乎所有常见工具,例如智能指针.bind.正则表达式.xml解析等工具.其代码以泛型编程为基础,且绝大部分代码放在扩展名为hpp的头文件中,以内联的方式引入到…
来自 http://www.linuxidc.com/Linux/2011-07/39215.htm,拷贝第一页如下 Boost学习系列 简介及基本用法 [日期:2011-07-25] 来源:Linux社区  作者:JuanA1 [字体:大 中 小]   在 做长字符串匹配.搜索的问题时,我想大家最先想到的应该就是使用正则表达式,简单.高效.而Boost的Regex库则是不得不提的,很早之前我就接触过 了Boost的这个模块,也对Boost了解了一点点,只是觉得它很NB,没做深究.昨天在网上无意…
智能指针的学习 中文教程网站 http://zh.highscore.de/cpp/boost/ 不过代码可能 由于BOOST 版本不同需要稍作修改 scoped_ptr 离开作用域则自动调用类析构函数或者函数delete方法 shared_ptr 使用率最高的指针 类似scoped_ptr 但是所有权可以转移 #include <iostream> #include <vector> #include <windows.h> #include <boost/sm…
Boost学习总结(一)VS2010环境下编译STLport和Boost Boost简介 Boost库是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库.1998年,Beman G.Dawes(C++标准委员会成员之一)发起倡议并建立了Boost社区,目的是向C++程序员提供免费的.同行审查.可移植的高质量C++源程序库.Boost涵盖了字符串与文本处理.容器.迭代器.算法.图像处理.模板元编程.并发编程等等,使用Boost,将大大增强了C++的功能和表现力. STLport是什么…
文档书籍下载 Boost Documentation Boost代码下载       优秀网站导航 Boost官方网站 Boost中文站 Boost Consulting     专题资源报告 Linux伊甸园- STL/boost专区 CSDN-Boost系列专题       个人博客推荐 C++有价值blog索引 <Learning boost>系列文章 C++罗浮宫-C++0x C++罗浮宫-boost源码剖析 roger007专栏-Boost C/C++多平台编程-Boost技术 吴尔…
首先对于我这种电源方面的小白来说 关于电源用的最多的就是线性稳压了 开关类的如  TI 的TPS系列  我是只知道应用电路而不知道具体原理的 但是长此以往也不是个办法 于是今天就带打家详细的来讲一下  BUCK BOOST电路的原理 先挂几个连接: 比较粗略的BUCK/BOOST电路的分析 http://tech.hqew.com/fangan_522451 http://blog.csdn.net/u011388550/article/details/23841023 这个还是不错的 http…
/****************************************************************/ /*            学习是合作和分享式的! /* Author:Atlas                    Email:wdzxl198@163.com /*  转载请注明本文出处: *   http://blog.csdn.net/wdzxl198/article/details/9112123 /*************************…