Mar*_*ork 67
Boost由标准委员会的几名成员组织.
因此,它将成为下一个标准的图书馆的温床.
随着tr1即将推出,很高兴知道增强已经覆盖了很多地面.tr1中的许多库基本上都是直接从boost原型中调整而来,因此经过了尝试和测试.不同之处在于它们已被移入std :: tr1命名空间(而不是boost).
您需要做的就是将以下内容添加到编译器默认包含搜索路径中:
<boost-install-path>/boost/tr1/tr1
Run Code Online (Sandbox Code Playgroud)
然后当你包含标准头文件时,boost会自动将所有必需的东西导入到命名空间std :: tr1中
要使用std :: tr1 :: share_ptr,您只需要包含<memory>.这将为您提供一个带有一个文件的智能指针.
Mih*_*șan 17
您只需阅读Boost Background Information页面,即可快速了解使用Boost的原因以及可以使用它的原因.值得花几分钟.
arg*_*txa 15
99%便携式.
我会说,一旦你发现了通过boost解决的需求,它就有很多库非常有用.要么自己编写代码,要么使用非常可靠的库.关闭多索引,Lambda,程序选项,RegEx,SmartPtr和Tuple等东西的搁置源是惊人的......
最好的办法是花一些时间浏览不同库的文档,并评估它是否对您有用.
值得!
Dou*_*yle 13
你得到了很多C++ 0x中的东西.但除了这种一般性之外,一些更好的细节是一个简单的正则表达式库,一个用于从字符串转换为整数的转换库(Lexical cast):
int iResult = 0;
try
{
iResult = lexical_cast<int>("4");
}
catch(bad_lexical_cast &)
{
cout << "Unable to cast string to int";
}
Run Code Online (Sandbox Code Playgroud)
一个日期/时间库,等等...
using namespace boost::gregorian;
date weekstart(2002,Feb,1);
date thursday_next = next_weekday(weekstart, Thursday); // following Thursday
Run Code Online (Sandbox Code Playgroud)
还有一个Python接口(Boost Python),一个词法分析器/解析器DSL(Boost Spirit):
// A grammar in C++ for equations
group = '(' >> expression >> ')';
factor = integer | group;
term = factor >> *(('*' >> factor) | ('/' >> factor));
expression = term >> *(('+' >> term) | ('-' >> term));
Run Code Online (Sandbox Code Playgroud)
而那只是表面上的......
Jer*_*rks 13
Boost很棒,但是在这里玩Devil's Advocate是你可能不想使用Boost的一些原因:
所有这一切并不意味着你不应该看看Boost代码并自己获得一些想法,即使你没有按原样使用Boost.
Boost 的优点:它广泛可用,可以移植到任何现代 C++ 编译器或任何平台。
这些功能与平台无关,您不必为每个新框架学习新的线程设计。
它以标准方式封装了许多特定于平台的功能,例如文件系统。
这是 C++ 应该附带的!Java 的许多流行之处在于它附带了一个标准库,几乎可以满足您的所有需求。不幸的是,C++ 只继承了有限的 C/Unix 标准函数。
| 归档时间: |
|
| 查看次数: |
10490 次 |
| 最近记录: |