2016-07-19 15:04:54 u010697897 阅读数 684
  • C++ Boost库编程视频精讲

    Boost库是一个优秀的、可移植、开源的C++库, 它由C++标准委员会库工作组成员发起,其中有些内容经常成为下一代C++标准库的内容,在C++社区中影响甚大,是不折不扣的“准”标准库。Boost库由于其对跨平台,对标准C++的支持,开源,高效等优点,如今已经被广泛运用于企业级开发。

    2159 人正在学习 去看看 黄强

最近系统的看了下boost,之前使用最多也就是boost的thread,boost的shared_ptr吧。

最近正看一本《boost程序完全开发指南》,这本书介绍了boost的使用,原理较少,但是讲解了很多如何使用boost。很值得一看。

boost的库,很大的提高了C++的开发效率,自我感觉 boost挺好用的,想用啥,查手册,查这本书。

推荐学习。

我曾经也是做VC的程序员,从而导致,使用MFC使用习惯了,用纯C++都不会用了。虽然是转变回来很快。但是我觉得,最好还是用纯C++写代码,然后使用boost扩展库,提高开发效率。

2010-08-17 16:07:00 alai04 阅读数 4319
  • C++ Boost库编程视频精讲

    Boost库是一个优秀的、可移植、开源的C++库, 它由C++标准委员会库工作组成员发起,其中有些内容经常成为下一代C++标准库的内容,在C++社区中影响甚大,是不折不扣的“准”标准库。Boost库由于其对跨平台,对标准C++的支持,开源,高效等优点,如今已经被广泛运用于企业级开发。

    2159 人正在学习 去看看 黄强

"The Boost C++ Libraries" 是德国朋友 Boris Schäling 的一本关于 Boost 库的入门读物,写得很不错,值得一读。

 

原书为德文版,主页:http://www.highscore.de/cpp/boost/

英文版主页:http://en.highscore.de/cpp/boost/

中文版主页:http://zh.highscore.de/cpp/boost/

 

另外,chm格式的中文版可以从 http://code.google.com/p/boost-cpp-lib-zh/downloads/list 下载。

 

 

2015-12-16 20:49:16 qq513036862 阅读数 194
  • C++ Boost库编程视频精讲

    Boost库是一个优秀的、可移植、开源的C++库, 它由C++标准委员会库工作组成员发起,其中有些内容经常成为下一代C++标准库的内容,在C++社区中影响甚大,是不折不扣的“准”标准库。Boost库由于其对跨平台,对标准C++的支持,开源,高效等优点,如今已经被广泛运用于企业级开发。

    2159 人正在学习 去看看 黄强

第一步:sudo apt-get install python2.6-dev


第二步:apt-get install libicu-dev


第三步:sudo apt-get install libbz2-dev


第四步:apt-get update


第五步:wget -c "http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.bz2/download" 然后等待


第六步:解压下载的文件 tar xvf download, 然后 cd boost_1_59_0,为了安装boost,大家先首先要编译生成boost安装工具bjam


第七步:进入boost执行目录,然后执行./bootstrap.sh,然后在该目录下生成一个bjam,然后执行./bjam -s HAVE_ICU=1,等待编译的结束,现在你可以去做其他的事情了。


第八步:编译结束就执行命令./bjam install --prefix=/usr,意思就是:将当前目录下编译好的头文件安装到相应位置:在/usr/include下有头文件夹boost,在/usr/lib下有boost的库,已经ok,然后vi编辑器,写一个测试程序,测试通过,就说明安装成功了。


第九步:测试demo
#include<boost/timer.hpp>
using namespace boost;
using namespace std;
int main(){
timer t;
cout<< "max timespan:"<<t.elapsed_max()/3600<<"h"<<endl;
cout<< "min timespan:"<<t.elapsed_min()<<"s"<<endl;
return 0;
}
2019-12-29 15:28:06 m08090420 阅读数 22
  • C++ Boost库编程视频精讲

    Boost库是一个优秀的、可移植、开源的C++库, 它由C++标准委员会库工作组成员发起,其中有些内容经常成为下一代C++标准库的内容,在C++社区中影响甚大,是不折不扣的“准”标准库。Boost库由于其对跨平台,对标准C++的支持,开源,高效等优点,如今已经被广泛运用于企业级开发。

    2159 人正在学习 去看看 黄强

用过boost中post函数后发现她可以接收任意无参函数包括lambda函数,但是对于boost的使用内心是有点抵触的,前面两个项目使用boost后导致编译特别慢,所以不想在使用它了,小团队根本就没有代码审查这种东西,头文件包含越写越乱,最后导致基本上所以的cpp文件都间接包含了boost中的库文件,最后发现整个项目头文件依赖达到百万个之多。但是boost中确实有很多值得学习的东西,既然是好东西拿就自己实现。翻看了boost代码之后发现其实很简单代码如下:

class CFuncEventBase
{
public:
    CFuncEventBase() {}
    virtual ~CFuncEventBase() {}
    virtual void CallFunc() = 0;
};
template <class HandleType>
class CFunctionEvent :public CFuncEventBase
{
public:
    CFunctionEvent(HandleType handle):m_Handle(handle){}
    virtual void CallFunc()override { m_Handle(); }
private:
    HandleType m_Handle;
};
class CThreadEvent
{
public:
    CThreadEvent() {}
    ~CThreadEvent() {}
    template< class Handler>
    void Post(Handler handle){m_queue.emplace_back(new CFunctionEvent<Handler>(handle));}
    CFuncEventBase* Pop()
    {
        auto tmp = m_queue.front();
        m_queue.pop_front();
        return tmp;
    }
    bool IsEmpty()const { return m_queue.empty(); }
private:
    std::list<CFuncEventBase*>  m_queue;
};

下面提供一个简单的使用例子,代码如下:

void Func1() { printf("function\n"); }
int main()
{
    CThreadEvent eventQueue;
    eventQueue.Post(&Func1);
    eventQueue.Post([]() {printf("test\n");});
    while (!eventQueue.IsEmpty())
    {
        auto tmp = eventQueue.Pop();
        tmp->CallFunc();
        delete tmp;
    }
}

这样就实现了post函数的功能,在加上线程无锁队列或者有锁队列等等就可以实现在a线程post一个任意函数到b线程执行,然后等待b线程执行完之后在调用a线程中的指定函数。boost中实现是通过静态函数指针实现。

 

2017-04-05 17:39:26 Touch_Dream 阅读数 507
  • C++ Boost库编程视频精讲

    Boost库是一个优秀的、可移植、开源的C++库, 它由C++标准委员会库工作组成员发起,其中有些内容经常成为下一代C++标准库的内容,在C++社区中影响甚大,是不折不扣的“准”标准库。Boost库由于其对跨平台,对标准C++的支持,开源,高效等优点,如今已经被广泛运用于企业级开发。

    2159 人正在学习 去看看 黄强

1、STL源码分析

2、opencv源码

3、Linux下的很多软件都是开源的,浏览器,输入法,编辑器,编译器等

4、boost开源

5、 FreeNOS

源码链接:lordsergioinspa/FreeNOS · GitHub

这是我在大学的时候,接触完整学习的第一个开源的C++项目,当时简直是,各种惊叹,里面有太多值得学习的地方。
这是一个用C++实现的微内核的操作系统,各种宏内核中的服务作为一个独立的services在微内核中,基于消息的通信方式,这点其实跟mac内核中的mach那部分机制相似。
除了是一个操作系统的实现,另外从中也能很好的学习到OOP的设计方式,整个代码风格特别好,完全基于面相对象,还有一些常见的设计模式,在接触了这个开源项目之后,才了解,代码风格,注释,doxygen,scons,设计模式。

6、Chromium
向左向右,怎么看现在只有Chromium是c++中最庞大的一个,自己在造轮子的时候,可以搜索下这个宝库,保证有各种型号的轮子。
Chromium涉及了几乎所有的平台,所以不仅能学到平台之上API的封装,还有包括Network的各种封装和借口,协议的C++的实现。
更甚至,webrtc,native client,sandbox,GPU,并行加速,debug,各种神奇的第三方的库,各种各样的技术,能潜心学深一个,就可以功力大增。

7、Node.js
红的发紫的项目,整个node.js 包括内部的核心V8都是C++的项目,完全的事件驱动,非阻塞IO,性能比nginx还快,可以说是把服务器彻底的榨干的节奏,这种设计模式,是现在比较流行的Reactor pattern ,concurrent computing。在构建一些大型的web services中,尤其凸显优势,现在移动互联网时代,在做app push services的时候,后端自己实现的推送服务,基本也是这种思路,An Open Source MQTT v3.1 Broker 并发量能到几十万,甚至对内核参数修改过后能到上百万。
Node.js另一个核心的组建是Marc Lehmann’s libev http://libev.schmorp.de , 基于event驱动的非阻塞IO库,在node-v0.9.0之后,node.js项目考虑到跨平台的实现,封装了一个项目libuv/libuv · GitHub, 


没事经常逛逛github:https://github.com/

c++ boost progress_timer

阅读数 158

C++经典书籍推荐

阅读数 5057

没有更多推荐了,返回首页