shared ptr可以从boost库中单独提出来吗

问题描述

shared ptr可以从boost库中单独提出来吗 50C
因为最近开发需要,想在一个平台上移植代码,但是代码中应用了大量的shared ptr,
但是移植代码的时候不想把整个boost库移植,只想移植shared ptr相关,有什么办法吗?
还是需要一个文件一个文件的分离出来?

解决方案

只能一个个头文件隔离,主要取决于它的依赖项。估计有点多,不是那么容易抽取出来

解决方案二:
这个要找库大神了,不过即使可行,也不划算的啊

解决方案三:
shared ptr是boost中的基本类型,涉及到库很大部分内容,最好整库移植

解决方案四:
一句话:如果你只想用boost的shared ptr库的话,将文件拷贝到你的目的平台即可。
因为boost的绝大部分库仅仅只是一个头文件而已。

你可以仔细看看这个网站的介绍:
http://www.boost.org/doc/libs/1_45_0/more/getting_started/windows.html

以下这一段已经说得很清楚了:

Nothing to Build?
Most Boost libraries are header-only: they consist entirely of header files containing templates and inline functions and require no separately-compiled library binaries or special treatment when linking.

以我以前使用boost的经验,像shared ptr之类的简单库是不需要编译的,可以直接使用头文件。

解决方案五:
嗯,我理解你的思路,但是这个文件还依赖其他很多文件,也得需要提出来是不是?

解决方案六:
嗯,我理解你的思路,但是这个文件还依赖其他很多文件,也得需要提出来是不是?

时间: 2024-08-04 11:21:45

shared ptr可以从boost库中单独提出来吗的相关文章

boost库中thread多线程详解2——mutex与lock

1. mutex对象类 mutex类主要有两种:独占式与共享式的互斥量.▲ 独占式互斥量:mutex: 独占式的互斥量,是最简单最常用的一种互斥量类型try_mutex: 它是mutex的同义词,为了与兼容以前的版本而提供timed_mutex: 它也是独占式的互斥量,但提供超时锁定功能▲ 递归式互斥量:recursive_mutex: 递归式互斥量,可以多次锁定,相应地也要多次解锁recursive_try_mutex: 它是recursive_mutex 的同义词,为了与兼容以前的版本而提供

boost库生成文件命名和编译

生成文件命名规则:boost中有许多库,有的库需要编译.而有的库不需要编译,只需包含头文件就可以使用.编译生成的文件名字普遍较长,同一个库根据编译链接选项不同,又可以生成多个不同名字的文件.生成的文件名字是很长,可是这样带的信息才多,也就容易识别出用途.其实生成文件的名字遵循一定的规则,有着固定的格式.识别这种格式,能帮助我们更高效地使用boost库.生成文件名字格式如:     BOOST_LIB_PREFIX + BOOST_LIB_NAME + "-" + BOOST_LIB_T

c++-C++ 时间调用除了boost库还有什么第三方

问题描述 C++ 时间调用除了boost库还有什么第三方 在做C++的项目过程中,原来对于时间的处理部分直接调用了Boost库中提供的gregorian和posix_time命名空间中的方法.现在由于某些方面的原因,需要解除对boost库的依赖.请问除了调用c++基本库中的方法有什么其他的可用第三方时间调用库吗? 解决方案 既然要用其它第三方,为啥不选boost 解决方案二: boost稍显庞大,工程需要多平台支持.boost多个平台需要分别编译对应的版本.出现错误,调试起来也比较麻烦 解决方案

在VS中使用Boost库出现Macro redefinition错误如何解决

最近使用Boost库做多线程开发,可视在vs中编译工程师总是遇到Macro redefinition错误,类似下面的错误描述 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdint.h(116): warning C4005: 'INT8_C' : macro redefinition 1>         c:\vc\include\boost\cstdint.hpp(376) : see previou

C++中Boost库裁剪与其应用详解_C 语言

前言 Boost 库涵盖的范围极广,有字符串和文本处理相关子库比如 format 库和 regexp 库,有容器相关子库比如 variant 库(和 Qt 的 QVariant 有得一拼),有迭代器子库比如 tokenizer 库(可以把字符进行 tokenize),还有算法.函数对象和高阶编程相关子库如functional 库.lambda 库和 signal 库,还有泛型编程.模板编程子库如 call traits.mpl,还有并发编程相关的 thread 库,等等等等. Boost 是如此

使用设计模式中的单例模式来实现C++的boost库_C 语言

线程安全的单例模式 一.懒汉模式:即第一次调用该类实例的时候才产生一个新的该类实例,并在以后仅返回此实例. 需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety. 使用double-check来保证thread safety.但是如果处理大量数据时,该锁才成为严重的性能瓶颈. 1.静态成员实例的懒汉模式: class Singleton { private: static Singleton* m_instance; Sing

boost库之tokenizer的使用

    在tokenizer出现之前,如果我们要对一个字符串进行分割,可能要自己封装一个函数.如果有n种不同的分割规则,那么你要封装n个不同的分割函数--太麻烦了!现在好了,Boost库的tokenizer封装了统一的语法来分割字符串,并且提供了三种常用的分割方式,足以满足我们的绝大多数编程需求.    tokenizer主要由分割器和迭代器两部分组成.分割器用于指定字符串的分割规则,如果不指定任何分割器,则tokenizer默认将字符串以空格和标点(键盘上除26个字母(包括大小写)和数字外的其

VS2010 编译安装boost库

实践是最好的办法..学习C++,想试试线程,然后打算用boost库,结果boost库编译差点吓到我..没看到比较完整的安装教程..一直耽搁.今天动手.完成了.方法记录如下:1.下载boost从boost官网( http://www.boost.org )上下载最新的boost版本,现在最新是1.49版本,解压到自定义目录(我解压到了D:/program files,最终的目录结构是D:\Program Files\boost_1_49_0) 2.编译安装 在D:\Program Files\bo

Struts标签库中的HTML标签

一. Struts标签库中的HTML标签 HTML标签库主要用来显示HTML元素,如果不用这种方法,你就必须用HTML标签来指定它们.从表面上看,这个标签库很简单.但是通过深入研究,我们就会发现它很强大.例如,它可以为我们在HTML表单的 一个特定输入元素中放置重点内容生成JavaScript,或为客户端输入验证生成脚本.而且,你可以用它通过一行代码来处理错误.然而,在将这个标签库用于你的Struts应用程序前,你需要做些简单的准备工作. 配置应用程序来运用标签库 在运用Struts HTML标