几个小时后,我非常沮丧,试图findshared_ptr所在的位置。 我看到的例子都没有显示完整的代码来包含shared_ptr (和working)的头文件。 简单地说std , tr1和<memory>完全没有帮助! 我已经下载提升和所有,但仍然不显示! 有人可以帮助我确切地知道在哪里find它吗? 感谢让我发泄我的挫折! 编辑:我看到我的标题已经改变。 对于那个很抱歉。 所以…这也是因为我不清楚shared_ptr是“C ++版本依赖” – >这就是为什么我没有说明我的环境 – >因此,可能为什么我很难find它。 我正在MSVS2008上工作。 编辑2:我不知道为什么,但我包括[内存]和[boost / tr1 / memory.hpp]和[boost / tr1 / tr1 /内存],而无处不在寻找shared_ptr ..当然,我couldn “T。 感谢所有的答复。
你好,我目前有一个程序,获得一个文件的位置的完整path,并把它放入一个types的variables:boost :: filesystem2 :: path 我已经查阅了如何做到这一点,并发现使用: string result1 = boost::filesystem::basename (myPath) 将path转换为string,但它只转换文件名(例如,如果path是“C:\ name \ bobsAwesomeWordDoc.docx”,它只是返回“bobsAwesomeWordDoc”)。 我发现如何将整个path转换为string,但我不知道如何在我的程序中实现它。 我已经尝试了多种方式,但我得到转换错误。 const std :: string&string():这个例程返回一个path被初始化的string的一个副本,并且按照path语法规则进行格式化。 (在这里find) 我努力了: string result1 = string& (myPath); 和其他一些变化。
所以,我一直在阅读,似乎Boost图书馆在实践中使用了很多(不是在我的商店,但是)。 为什么是这样? 是什么让它如此美好?
当我发现boost::lexical_cast我心想:“我为什么不早点知道这个呢?” – 我讨厌不得不写代码 stringstream ss; ss << anIntVal; mystring = ss.str(); 现在我写 mystring = boost::lexical_cast<string>(anIntVal); 昨天,在stackoverflow,我遇到了提升分裂(另一个gem,这将节省我编写代码)。 string stringtobesplit = "AA/BB-CC") vector<string> tokens; boost::split(tokens, stringtobesplit, boost::is_any_of("/-")); // tokens now holds 3 items: AA BB CC 我将开始浏览boost文档,寻找其他可以定期使用的函数,但是我觉得这会很容易错过。 你最不喜欢使用哪种助推function?
有没有一种快速的方法来确定系统上的Boost C ++库的版本?
你如何在MacOS上安装Boost? 现在我无法findMac的bjam。
VS2008有64位Boost库的版本吗? 还是我自己编译一个呢? 那么,如果有谁有经验呢?
显然,boost包含两个独立的状态机库: 状态图和元状态机 (MSM)。 标语给出了非常相似的描述: Boost.Statechart – 任意复杂的有限状态机都可以用易读和可维护的C ++代码实现。 元状态机(Meta State Machine) – performance力强大的UML2有限状态机的高性能库。 你知道两者之间有什么关键的区别和select的考虑吗?
boost网站上提供的文档是有限的。 从我所能读到的,一般的共识是,在boost :: asio库中很难find好的文档。 这是真的吗? 如果是这样,为什么? 笔记: 我已经find了(非增强型) Asio网站 – 文档看起来与boost网站上的文档完全相同。 我知道Boost :: asio是新的! 我正在寻找解决scheme而不是借口。 编辑: 有一个build议,将networking库添加到由Boost:asio(Christopher Kohlhoff)撰写的TR2标准库中 。 虽然它不是boost:asio的文档,但它确实将它用作TR2提议的基础。 由于作者在这份文件中join了更多的努力,我发现它有一定的帮助,如果不是作为参考的话,至less作为一个概述。
我一直在看Boost的库源代码,我注意到经常有没有任何预处理器指令附加到他们的单磅迹象。 我阅读了GCC预处理器手册和规范指南,并且找不到任何相关内容。 (1) #ifndef BOOST_CONFIG_HPP (2) # include <boost/config.hpp> (3) #endif (4) # (5) #if defined(BOOST_HAS_PRAGMA_ONCE) (6) # pragma once (7) #endif 在第四行,英镑符号后没有任何东西。 这有什么影响? 它是否在C预处理器(CPP)规范中定义? 由于Boost是一个跨平台的库,我会假设任何CPP都应该正确parsing它。 整个代码中的随机英镑/散列符号的效果/副作用是什么?