【Boost】Boost总结汇总

来源:互联网 发布:淘宝客服名 编辑:程序博客网 时间:2024/06/06 00:46

从开始接触Boost已经有好几年了,而对它的掌握却难言熟悉,有对它部分的源代码的剖析也是蜻蜓点水。有时间一点点梳理一下吧。

1. 概述

【Boost】C++ Boost库简介
【Boost】C++ Boost 学习资源列表
【Boost】Boost使用几条简单笔记
【Boost】Poco vs Boost

2. 工具

【Boost】利用typeid来获取变量的类型
【Boost】boost::function介绍
【Boost】boost::bind四种应用场景的例子

3. 字符串与Range相关

【Boost】基于boost::lexical_cast的to_string函数
【Boost】boost::tokenizer详解
【Boost】boost::string_algo详解1
【Boost】boost::string_algo详解2——find相关函数
【Boost】boost::string_algo详解3——finder的简单应用
【Boost】boost::string_algo详解4——trim_if,trim_copy_if,trim_xxxx_if,trim_xxxx_copy_if
【Boost】boost::string_algo详解5——erase相关函数
【Boost】boost::string_algo详解6——replace相关函数
【Boost】boost::string_algo详解7——join的应用
【Boost】boost::range(区间)介绍
【Boost】boost::to_upper_copy详解

4. 日期与时间

【Boost】date常用方法
【Boost】date构造方法
【Boost】date_duration与date_period
【Boost】通过date库中一些类型计算节假日
【Boost】ptime类介绍
【Boost】boost::timer库用法与实例
【Boost】time_duration, time_period, time_iterator
【Boost】month_iterator的妙用

5. 并行编程

【Boost】boost库中thread多线程详解1
【Boost】boost库中thread多线程详解2——mutex与lock
【Boost】boost库中thread多线程详解3——细说lock_guard
【Boost】boost库中thread多线程详解4——谈谈recursive_mutex(递归式互斥量)
【Boost】boost库中thread多线程详解5——谈谈线程中断
【Boost】boost库中thread多线程详解6——线程组简单例子
【Boost】boost库中thread多线程详解7——wait与timed_wait简单例子

【Boost】boost库asio详解1——strand与io_service区别
【Boost】boost库asio详解2——io_service::run函数无任务时退出的问题
【Boost】boost库asio详解3——io_service作为work pool
【Boost】boost库asio详解4——deadline_timer使用说明
【Boost】boost库asio详解5——resolver与endpoint使用说明
【Boost】boost库asio详解6——boost::asio::error的用法浅析
【Boost】boost库asio详解7——boost::asio::buffer用法
【Boost】boost库asio详解8——几个TCP的简单例子

6. 其他

【Boost】boost::shared_from_this值得注意的地方
【Boost】boost库中sleep方法详解
【Boost】boost库的随机数的例子
【Boost】boost::algorithm的几个简单例子
【Boost】boost::dynamic_bitset介绍
【Boost】boost::noncopyable介绍
【Boost】boost::array详解
【Boost】boost::assign库介绍


转自:http://blog.csdn.net/huang_xw/article/details/8758212

==============================

boost::noncopyable介绍


boost::noncopyable比较简单, 主要用于单例的情况.

通常情况下, 要写一个单例类就要在类的声明把它们的构造函数赋值函数析构函数, 复制构造函数隐藏到private或者protected之中, 每个类都这么做麻烦.
有noncopyable类, 只要让单例类直接继承noncopyable. 

class noncopyable的基本思想是把构造函数和析构函数设置protected权限,这样子类可以调用,但是外面的类不能调用,那么当子类需要定义构造函数的时候不至于通不过编译。但是最关键的是noncopyable把复制构造函数和复制赋值函数做成了private,这就意味着除非子类定义自己的copy构造和赋值函数,否则在子类没有定义的情况下,外面的调用者是不能够通过赋值和copy构造等手段来产生一个新的子类对象的。

#ifndef BOOST_NONCOPYABLE_HPP_INCLUDED#define BOOST_NONCOPYABLE_HPP_INCLUDEDnamespace boost {//  Private copy constructor and copy assignment ensure classes derived from//  class noncopyable cannot be copied.//  Contributed by Dave Abrahamsnamespace noncopyable_  // protection from unintended ADL{  class noncopyable  {   protected:      noncopyable() {}      ~noncopyable() {}   private:  // emphasize the following members are private      noncopyable( const noncopyable& );      const noncopyable& operator=( const noncopyable& );  };}typedef noncopyable_::noncopyable noncopyable;} // namespace boost#endif  // BOOST_NONCOPYABLE_HPP_INCLUDED
Demo实例:
#include "demo.h"class myclass: public boost::noncopyable{public:myclass(){};myclass(int i){};};int main(){myclass cl1();myclass cl2(5);// myclass cl3(cl1);// error// myclass cl4(cl2);// errorreturn 0;}


0 0
原创粉丝点击