草庐IT

c++ - 我在这里支付违约 build 费用吗?如果支付的话,我可以避免吗?

在构建T成本高昂的情况下,我想知道在以下情况下我是否为默认构建付费(我想我会付费)std::functionmake_t;std::vectort(100000);std::generate(t.begin(),t.end(),make_T);如果我必须为此付费,我可以避免吗?我想写一些类似的东西std::functionmake_t;std::vectort;t.reserve(100000);std::generate(t.begin(),t.end(),make_T);但这不起作用,因为它不会将t.end()移动到保留内容的末尾。以下是否安全/可取/正确?std::functio

c++ - boost::spirit::气

考虑以下代码:(Boost.Spirit2.5.1)qi::parse(str.begin(),str.end(),(+qi::alpha)[[](conststring&s){cout>(*(qi::char_(',')|qi::char_('\'')))>>qi::uint_[[](intinteger){cout[[](intinteger){cout有效,但是+qi::alpha的类似代码没有。如何更正代码? 最佳答案 BoostSpirit尚不支持C++0x/C++11lambdas1编辑显然支持有所改善(我今天早些时候使

c++ - 从时钟获取当前日期

我在做这个boost::gregorian::datecurrent_date(boost::date_time::day_clock::local_day());我得到以下错误‘templateclassboost::date_time::day_clock’usedwithouttemplateparameters有什么我必须做的不同的吗?引用http://www.boost.org/doc/libs/1_47_0/doc/html/date_time/gregorian.html#date_construct_from_clock 最佳答案

c++ - 如何从 std::ifstream 将文件读入 unsigned char 数组?

所以通常我会做这样的事情:std::ifstreamstream;intbuff_length=8192;boost::shared_arraybuffer(newchar[buff_length]);stream.open(path.string().c_str(),std::ios_base::binary);while(stream){stream.read(buffer.get(),buff_length);//boost::asio::write(*socket,boost::asio::buffer(buffer.get(),stream.gcount()));}strea

c++ - const boost::shared_ptr<T>& 作为函数参数的目的?

我正在使用某个大型且维护良好的开源C++库,并遇到了一个具有以下形式的构造函数的类定义classSomeClass{SomeClass(constboost::shared_ptr&);}我的问题是:传递constboost::shared_ptr有什么意义?引用?传递boost::shared_ptr是否真的存在不可忽略的开销?按值(value)计算,或者传递boost::shared_ptr是否存在其他危险?按我不知道的值(value)? 最佳答案 按值传递将复制它,这会导致引用计数增加,并在所有线程之间同步。绝对不可忽略。

c++ - 重构代码以使用 Boost 共享指针

我使用普通指针编写了一个项目,现在我受够了手动内存管理。在重构过程中可以预见到哪些问题?到目前为止,我已经花了一个小时来替换X*与shared_ptr对于我想自动管理内存的类型。然后我改了dynamic_cast至dynamic_pointer_cast.我仍然看到更多错误(与NULL相比,将this传递给函数)。我知道这个问题有点模糊和主观,但我认为我可以从已经这样做过的人的经验中受益。有没有陷阱? 最佳答案 虽然到处使用boost::shared_pointer很容易,但您应该根据所有权语义使用正确的智能指针。在大多数情况下,您

c++ - 使用 boost::program_options 解析配置文件

你好,我写了一个类来通过boost::program_options解析配置文件。这是我的(缩短):namespacensProOp=boost::program_options;nsProOp::variables_mapm_variableMap;nsProOp::options_descriptionm_description;//ToaddoptionstothevariableMap,e.g."addOption("money_amount");"templatevoidaddOption(conststd::string&option,conststd::string&he

c++ - Boost SSL 编译失败

我想用#include但它曾经让我失望过:1>d:\boost\boost\asio\ssl\detail\openssl_types.hpp(19):fatalerrorC1083:Cannotopenincludefile:'openssl/conf.h':Nosuchfileordirectory有什么问题吗? 最佳答案 boost::asio::ssl需要OpenSSL。http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/overview/ssl.html需要Op

c++ - 当基类和派生类都继承自 boost::enable_shared_from_this 时出现错误的弱指针

我有一个派生自boost::enable_shared_from_this的基类,然后是另一个派生自基类和boost::enable_shared_from_this的类:#include#includeusingnamespaceboost;classA:publicenable_shared_from_this{};classB:publicA,publicenable_shared_from_this{public:usingenable_shared_from_this::shared_from_this;};intmain(){shared_ptrb=shared_ptr(n

c++ - boost 属性 write_json 不正确的行为

我正在为Boost属性树编写一个JSON包装器。目前的重点是将生成的JSON写入字符串或文件。使用boost::property_tree::json_parser::write_json(ss,*pt)生成的属性树被写成一个字符串。但是这个方法不理解什么是真、假、空或数字。一切都转换为字符串。阅读Boost文档,这是库的一个限制。有什么办法可以修改这种行为吗? 最佳答案 Link此链接中包含问题的修复程序。它涉及更改boost代码,因此我尝试了另一种选择。我的解决方案涉及正则表达式:std::stringJSONObject::t