草庐IT

hit-boosted

全部标签

c++ - 如何使用类似 boost.parameter 的语法获得更快的编译速度?

我目前正在使用带有一些工厂函数的boost.parameter并且编译时间变得令人望而却步。目前我有一个这样的常见模式:autothing=makeThing(property1=foo::bar,"myThing"_thingName);makeThing有大约30个参数,其中大部分带有默认值。我想保留“类似命名参数”的语法以及按类型而不是按位置匹配参数的能力。如何在不改变工厂调用点语法的情况下获得更好的编译速度?注意:从boost.MPL速度和说brigand速度之间的差异来看,在我看来,如果在boost.parameter等效项中使用现代元编程技术,编译时间至少应该有一个数量级的

c++ - 强制删除 boost::signals2 中的插槽

我发现boost::signals2使用了一种对连接槽的延迟删除,这使得很难将连接用作管理对象生命周期的东西。我正在寻找一种方法来强制在断开连接时直接删除插槽。任何关于如何通过不同地设计我的代码来解决问题的想法也很感激!这是我的场景:我有一个Command类负责异步执行需要时间的操作,看起来像这样(简化):classActualWorker{public:boost::signals2OnWorkComplete;};classCommand:boost::enable_shared_from_this{public:...voidExecute(){m_WorkerConnectio

c++ - 强制删除 boost::signals2 中的插槽

我发现boost::signals2使用了一种对连接槽的延迟删除,这使得很难将连接用作管理对象生命周期的东西。我正在寻找一种方法来强制在断开连接时直接删除插槽。任何关于如何通过不同地设计我的代码来解决问题的想法也很感激!这是我的场景:我有一个Command类负责异步执行需要时间的操作,看起来像这样(简化):classActualWorker{public:boost::signals2OnWorkComplete;};classCommand:boost::enable_shared_from_this{public:...voidExecute(){m_WorkerConnectio

c++ - 你选择 BOOST 中的哪个 Singleton 库?

Google结果显示boost中有超过1个单例模板/基类,您建议使用哪一个? 最佳答案 您不应该在boost中使用单例,它们仅用于内部目的(请参阅单独libes的“详细”文件夹)。这就是为什么你还没有在boost网站上公开Singleton库的原因。单例类的实现非常简单,但有许多变体在特定情况下很有用,因此您应该使用符合您认为单例应有的行为的东西。现在,还有其他提供单例的库,最通用的是Loki。但它可能会让你大吃一惊;)更新:现在有一个名为Singularity的提议库,旨在提供非全局单例(可以选择使其成为全局),强制您拥有明确的对

c++ - 你选择 BOOST 中的哪个 Singleton 库?

Google结果显示boost中有超过1个单例模板/基类,您建议使用哪一个? 最佳答案 您不应该在boost中使用单例,它们仅用于内部目的(请参阅单独libes的“详细”文件夹)。这就是为什么你还没有在boost网站上公开Singleton库的原因。单例类的实现非常简单,但有许多变体在特定情况下很有用,因此您应该使用符合您认为单例应有的行为的东西。现在,还有其他提供单例的库,最通用的是Loki。但它可能会让你大吃一惊;)更新:现在有一个名为Singularity的提议库,旨在提供非全局单例(可以选择使其成为全局),强制您拥有明确的对

c++ - 哪些 Boost 库利用了 Move Semantics

右值引用和move语义是C++11的一项主要功能,可以通过减少不必要的拷贝显着加快代码速度。当使用c++11/0x编译器(例如gcc4.6)时,STL已更新以使用此新功能Boost1.48引入了一个新库,以便在较旧的C++03编译器上模拟move语义。该库通过引入宏来工作,当使用C++11编译器编译代码时,这些宏会扩展为真正的右值引用,或者当使用C++03编译器编译代码时,这些宏会扩展为真正的右值引用。除了boost::container是否已更新任何其他boost库以利用move语义?是否有详细说明何时/是否将move语义添加到其他boost库的路线图?boost::multi_in

c++ - 哪些 Boost 库利用了 Move Semantics

右值引用和move语义是C++11的一项主要功能,可以通过减少不必要的拷贝显着加快代码速度。当使用c++11/0x编译器(例如gcc4.6)时,STL已更新以使用此新功能Boost1.48引入了一个新库,以便在较旧的C++03编译器上模拟move语义。该库通过引入宏来工作,当使用C++11编译器编译代码时,这些宏会扩展为真正的右值引用,或者当使用C++03编译器编译代码时,这些宏会扩展为真正的右值引用。除了boost::container是否已更新任何其他boost库以利用move语义?是否有详细说明何时/是否将move语义添加到其他boost库的路线图?boost::multi_in

c++ - 为什么不包含这个boost头文件

我正在Mac上使用cmake构建我的c++程序。编译器给了我以下错误:error:boost/filesystem.hpp:Nosuchfileordirectory触发错误的行如下:#include"boost/filesystem.hpp"或#include以上我使用的哪个没有改变错误但在我的CMakeLists.txt中,我通过以下方式包含了boostheader:FIND_PACKAGE(Boost)MESSAGE("Boostinformation:")MESSAGE("Boost_INCLUDE_DIRS:${Boost_INCLUDE_DIRS}")MESSAGE("Bo

c++ - 为什么不包含这个boost头文件

我正在Mac上使用cmake构建我的c++程序。编译器给了我以下错误:error:boost/filesystem.hpp:Nosuchfileordirectory触发错误的行如下:#include"boost/filesystem.hpp"或#include以上我使用的哪个没有改变错误但在我的CMakeLists.txt中,我通过以下方式包含了boostheader:FIND_PACKAGE(Boost)MESSAGE("Boostinformation:")MESSAGE("Boost_INCLUDE_DIRS:${Boost_INCLUDE_DIRS}")MESSAGE("Bo

c++ - Boost::bind 和 Boost Phoenix::bind 有什么区别?

Boost::bind和BoostPhoenix::bind有什么区别? 最佳答案 phoenix::bind就像lambda::bind一个函数,它返回一个表达式模板,记录它必须调用给定函数。它们被设计为分别与phoenix和lambda一起工作。结果,它们包含更多的东西。就像,它们返回的类型重载了所有可能的运算符,以便以后可以记录和执行它们各自的操作。boost::bind“只是”一个Binder。它将绑定(bind)函数,并返回一个函数调用运算符重载的类型,仅此而已。 关于c++-