Tag: 提升

向下广播shared_ptr <Base>到shared_ptr <Derived>?

更新:本示例中的shared_ptr与Boost中的shared_ptr类似,但不支持shared_polymorphic_downcast(或者dynamic_pointer_cast或static_pointer_cast)。 我试图初始化一个派生类的共享指针,而不会丢失引用计数: struct Base { }; struct Derived : public Base { }; shared_ptr<Base> base(new Base()); shared_ptr<Derived> derived; // error: invalid conversion from 'Base* const' to 'Derived*' derived = base; 到现在为止还挺好。 我没有想到C ++隐式地将Base *转换为Derived *。 但是,我确实需要代码表示的function(即在向下转换基指针时保持引用计数)。 我的第一个想法是在Base中提供一个演员操作符,这样就可以隐式转换为Derived(对于书呆子,我会检查演员是否有效,不用担心): struct Base { operator Derived* (); } // … Base::operator Derived* () { return down_cast<Derived*>(this); } 那么,它没有帮助。 编译器似乎完全忽略了我的types转换运算符。 […]

混合Qt和Boost

我正在研究使用Qt 4框架以C ++开始一个项目(需要一个跨平台的GUI)。 我从朋友和网上听说过关于Boost库的很棒的东西。 我已经开始阅读这两本书了,想深入问一个粗略的问题:这两个发展“系统”是相互排斥的吗? 我最初的search和阅读显示在信号处理,自定义构build系统和其他低级原语中有一些重叠。 在同一个项目中使用它们是否合理?

使用Boost从C ++中的样本向量计算平均值和标准偏差

有没有办法使用Boost来计算包含样本的vector的均值和标准偏差? 或者我必须创build一个累加器,并将其载入它?

P :: ************在Boost assert.hpp文件中是什么意思?

在boost / mpl / assert.hpp中 ,我看到如下所示: template<class Pred> struct eval_assert { typedef typename extract_assert_pred<Pred>::type P; typedef typename P::type p_type; typedef typename ::boost::mpl::if_c<p_type::value, AUX778076_ASSERT_ARG(assert<false>), failed ************ P::************ >::type type; }; 如果第一个************可以作为struct的指针处理失败,那么P::************对我来说真的没有任何意义。 这是标准的C ++吗?

boost :: algorithm :: join的一个很好的例子

我最近想要使用boost :: algorithm :: join,但是我找不到任何用法示例,我不想投入大量时间来学习Boost Range库,只是使用这个函数。 任何人都可以提供一个很好的例子,如何在一个string的容器上使用连接? 谢谢。

boost shared_mutex的例子(多读/一写)?

我有一个multithreading的应用程序,必须经常读取一些数据,偶尔会更新数据。 现在一个互斥体可以安全地访问这个数据,但是这样做很昂贵,因为我希望多个线程能够同时读取,并且只有在需要更新时才locking它们(更新线程可以等待其他线程完成) 。 我认为这是boost::shared_mutex应该做的,但我不清楚如何使用它,并没有find一个明确的例子。 有没有人有一个简单的例子,我可以用它来开始?

Scala中的“提升”是什么?

有时当我阅读Scala生态系统中的文章时,我读到了“提升”/“提升”的术语。 不幸的是,这并没有解释到底是什么意思。 我做了一些研究,似乎解除与function价值或类似的东西有关,但我无法find一个文本,解释以新手友好的方式实际上提升。 Lift框架有一个额外的混淆,那就是它的名字已经提升了,但是它并没有帮助回答这个问题。 Scala中的“提升”是什么?

提升C ++序列化开销

我试图用下面的代码来度量序列化开销 const int message_size=1000; std::vector<short> message(message_size); std::string s((char*)(&message[0]), message_size * sizeof(short)); double size= 1000*sizeof(short); double size2= s.size(); double overhead = size2 – size; //is zero 这是对的吗? (这是从vector序列化 ) 我如何测量序列化开销? – 主要问题是测量序列化的向量。 我可以使用Boost进行序列化。

增加随机数发生器

有没有人有一个最喜欢的助推随机数发生器,你可以解释一下如何实现它成代码。 我试图让梅森扭转工作,并想知道如果有人偏好对其他人之一。

用MinGW搭buildBoost 1.52

我试图find一个关于如何使用MinGW来构buildBoost 1.52的授权答案。 我在互联网上发现了一些build立起来的指针,像这样: cd tools\build\v2\engine build.bat mingw copy bin.ntx86\bjam.exe ..\..\..\.. cd ..\..\..\.. bjam –toolset=gcc 由于这些指令可以追溯到Boost 1.45 ,因为我无法用Boost自己的指令来validation,所以我想validation上述步骤是否正确使用MinGW来构buildBoost。 我自己尝试了这些步骤, 似乎构build了Boost,但是我还没有做过广泛的testing(我也不会有这样的概念)。