boost相关小知识(长期顶置更新)

2.boost throw_exception unresolved

在项目中(windows VS环境)增加了一些boost库,导致一个链接报错,

throw_exception unresolved (link error)

可以修改vs的工程属性,/EH 和 /GX属性

修改方法见:

http://msdn.microsoft.com/zh-cn/library/1deeycx5.aspx

http://msdn.microsoft.com/zh-cn/library/d42ws1f6(v=vs.80).aspx

1.boost::noncopyable

nonycopyable是一个可以通过继承来防止你自己的类拷贝构造或者拷贝赋值的类。有些复杂对象,并没有明确的拷贝构造/拷贝赋值函数,当你使用隐性的拷贝构造/拷贝赋值时,可能会出现一些不必要的bug。

boost::noncopyable将构造和析构函数设置为protected,子类可以调用,使得子类调用默认构造函数时不至于编译不过。将拷贝构造/拷贝赋值函数设置为private,子类没有定义自己的拷贝构造/拷贝赋值函数时,是无法拷贝构造和等号赋值的。

一般都是私有继承的:

class my_class : private boost::noncopyable

PS:也有用public继承的,这个其实就是继承的特性了。而noncopyable主要是防止拷贝构造/赋值,所以private继承和public继承差别不是很大。stackoverflow上也是如是说。

// to be continued

  1. eliteYang说道:

    asio你可以关注下gce,我一个技术群里的朋友写的,你可以上github上搜搜看

  2. 李阳博客说道:

    没学过C++,不晓得这个库。哈哈,了解一下,以后会用得到

    1. eliteYang说道:

      这个库是标准库的备胎,很不错的

  3. 淡忘~浅思说道:
    Firefox Windows 7

    路过 boost看上去高大上的赶脚

  4. Jim_sh说道:
    Google Chrome Windows 7

    路过,学习下。boost太大,只能研究下用到的几个库。目前关注asio

  5. bystander说道:
    Google Chrome Windows 8.1

    boost库太强大了,之前学c++的时候体验过。

    1. eliteYang说道:
      Google Chrome Windows 7

      但是boost现在有点冗余了,而且接口没有标准库好用,但是编译器对标准的实现又太慢了,主要用vs写代码,这样就得用boost了

  6. 网事如风说道:
    Firefox Windows 7

    boost里面上百个库,希望老兄能持续更新,至少把常用的都介绍下 :lol:

    1. eliteYang说道:
      Google Chrome Windows 7

      慢慢写,最近项目太忙了,后面写

  7. peach5460说道:
    Google Chrome Windows 7

    编译boost是一件很纠结的事情

    1. eliteYang说道:
      Google Chrome Windows 7

      现在编译很简单啊,不用纠结的

  8. 爱软儿说道:
    Firefox Windows 7

    加速的?

    1. eliteYang说道:
      Google Chrome Windows 7

      哈哈……这是一个C++的库,号称第二标准库/候选标准库,理论超前于std库,新的C++标准中用了boost的内容

  9. Yu说道:
    Google Chrome Windows 8.1

    又修改UI了啊 -- 感觉不怎么习惯啊

    1. eliteYang说道:
      Google Chrome Windows 7

      哈……用了大前端的D8主题,一直很喜欢这个主题,直到最近才找到这个主题的下载地址。感觉这个主题很不错的

发表评论

电子邮件地址不会被公开。必填项已用 * 标注