VS2005的C ++ std :: tr2

时间:2020-03-05 18:40:56  来源:igfitidea点击:

Boost是VS2005用户体验TR2的唯一方法吗?还有仅下载与TR2相关的软件包的傻瓜证明方法吗?

我在看BoostPro Consulting提供的Boost安装程序。如果我为MSVC8的所有软件包选择所有线程选项的选项,则需要1.1GB。虽然我的空间并不小,但一个库需要超过1 GB的空间似乎很荒谬,而BPC需要很长时间才能赶上当前版本。

我需要什么套餐?我真的只对包含std :: tr2的对象感兴趣,可以通过将提供的对象与TR2报告中的对象进行比较,然后从列表中进行选择来找到答案,但是即使如此,仍不清楚需要什么,事实上,它是背后的一个版本,让我很烦。

从与Boost(1.33.1)的先前接触中我知道,自编译是一种惨痛的经历:浪费大量时间来启动它,然后大量错误通过屏幕的速度比我们阅读的速度快,所以剩下的就是带着一种不安的感觉,感觉有些东西坏了,但是我们不知道是什么。

我从未在任何Apache库中遇到过这些问题,但这是另一回事。

解决方案

回答

Boost的优点之一是所有代码都在头文件中。他们必须出于模板原因。因此可能可以下载代码并将其包含在项目中。 Boost中有一些库确实需要编译,但是只要我们不需要这些库...

回答

我相信我们实际上是在指TR1,而不是TR2. 关于TR2的提案征集活动已经开始,但是在新的C ++标准发布之前,不要期望看到任何进展。同样,尽管boost是TR1实现的提供者,但d2005和VC2005上的其他提供者是dinkumware和GNU FSF,boost可能是访问此功能的最简单方法。

boost中最重要的库是

  • 参考
  • 智能指针
  • 系结
  • 类型特征
  • 大批
  • 常用表达

在最近的几个版本中,用于构建boost的文档一直在逐步完善,当前的入门指南非常详细。智能指针和绑定应该在头文件和IMO中起作用,这些是TR1的最有用元素。

回答

我最感兴趣的TR1 / TR2库是线程和相关的原子。

回答

如果没有足够好的文档,为我们自己编译boost库实际上很简单。该文档位于jamroot文件中。在boost根目录中运行bjam --help以获得选项的详细列表。作为示例,我使用以下命令行使用boost 1.36.0构建当前设置:

bjam --build-type=complete --toolset=msvc --build-dir=c:\boost\build install

它在我的计算机上运行了大约半小时,并将生成的文件放入c:\ boost