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

作者: NickYang 分类: 技术文章,程序开发 发布时间: 2014-04-04 20:46

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

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

16条评论
  • 爱奇趣分享网

    2015 年 1 月 11 日 11:46

    支持

    潜水 其它浏览器 其它操作系统
  • eliteYang

    2014 年 12 月 9 日 19:47

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

    神话 其它浏览器 其它操作系统
  • 李阳博客

    2014 年 12 月 8 日 13:14

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

    活跃 其它浏览器 其它操作系统
    1. eliteYang

      2014 年 12 月 9 日 19:46

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

      神话 其它浏览器 其它操作系统
  • 淡忘~浅思

    2014 年 10 月 9 日 10:53