草庐IT

ZN5boost

全部标签

c++ - 为什么 boost::checked_delete "intentionally complex"?

所以我在查看一些boost源代码时发现了这个:(来自)templateinlinevoidchecked_delete(T*x){//intentionallycomplex-simplificationcausesregressionstypedefchartype_must_be_complete[sizeof(T)?1:-1];(void)sizeof(type_must_be_complete);deletex;}有人碰巧知道为什么要这样实现吗?sizeof(T)(例如)还不够吗? 最佳答案 Someoneaskedthes

c++ - 如何在依赖的静态库中链接 Boost

在MSVisualC++2010中我的解决方案中有一个C++项目,它使用了boost并且运行良好。然后我决定将这个项目转换成一个静态库并创建一个依赖于这个静态库的新项目。现在,我转换后的静态库构建没有错误和警告(编译器和链接器)但新项目编译但不链接。我得到:1>LINK:fatalerrorLNK1104:cannotopenfile'libboost_thread-vc100-mt-1_45.lib'作为测试,我将完整目录路径添加到该库的链接器选项中...然后它提示1>LINK:fatalerrorLNK1104:cannotopenfile'libboost_date_time-v

c++ - 如何在依赖的静态库中链接 Boost

在MSVisualC++2010中我的解决方案中有一个C++项目,它使用了boost并且运行良好。然后我决定将这个项目转换成一个静态库并创建一个依赖于这个静态库的新项目。现在,我转换后的静态库构建没有错误和警告(编译器和链接器)但新项目编译但不链接。我得到:1>LINK:fatalerrorLNK1104:cannotopenfile'libboost_thread-vc100-mt-1_45.lib'作为测试,我将完整目录路径添加到该库的链接器选项中...然后它提示1>LINK:fatalerrorLNK1104:cannotopenfile'libboost_date_time-v

c++ - boost async_* 函数和 shared_ptr 的

我经常在代码中看到这种模式,将shared_from_this作为第一个参数绑定(bind)到成员函数并使用async_*函数调度结果。这是另一个问题的示例:voidConnection::Receive(){boost::asio::async_read(socket_,boost::asio::buffer(this->read_buffer_),boost::bind(&Connection::handle_Receive,shared_from_this(),boost::asio::placeholders::error,boost::asio::placeholders::

c++ - boost async_* 函数和 shared_ptr 的

我经常在代码中看到这种模式,将shared_from_this作为第一个参数绑定(bind)到成员函数并使用async_*函数调度结果。这是另一个问题的示例:voidConnection::Receive(){boost::asio::async_read(socket_,boost::asio::buffer(this->read_buffer_),boost::bind(&Connection::handle_Receive,shared_from_this(),boost::asio::placeholders::error,boost::asio::placeholders::

c++ - boost multi_index 是如何实现的

我很难理解Boost.MultiIndex是如何实现的。假设我有以下内容:typedefmulti_index_container>,ordered_unique>>>employee_set;我想我有一个数组,Employee[],它实际上存储employee对象,以及两个mapmapmap以姓名和年龄为键。每个映射都有employee*值,该值指向数组中存储的对象。这样可以吗? 最佳答案 给出了底层结构的简短解释here,引述如下:该实现基于与指针互连的节点,就像您最喜欢的std::set实现一样。我将对此进行详细说明:std:

c++ - boost multi_index 是如何实现的

我很难理解Boost.MultiIndex是如何实现的。假设我有以下内容:typedefmulti_index_container>,ordered_unique>>>employee_set;我想我有一个数组,Employee[],它实际上存储employee对象,以及两个mapmapmap以姓名和年龄为键。每个映射都有employee*值,该值指向数组中存储的对象。这样可以吗? 最佳答案 给出了底层结构的简短解释here,引述如下:该实现基于与指针互连的节点,就像您最喜欢的std::set实现一样。我将对此进行详细说明:std:

c++ - boost::this_thread::sleep() 与 nanosleep()?

我最近发现需要让当前线程休眠一段确切的时间。我知道在POSIX平台上这样做的两种方法:使用nanosleep()或使用boost::this_thread::sleep()。出于好奇,我想知道这两种方法之间有什么区别。精度是否有任何差异,是否有任何理由不使用Boost方法?nanosleep()方法:#include...structtimespecsleepTime;structtimespecreturnTime;sleepTime.tv_sec=0;sleepTime.tv_nsec=1000;nanosleep(&sleepTime,&returnTime);boost方法:#

c++ - boost::this_thread::sleep() 与 nanosleep()?

我最近发现需要让当前线程休眠一段确切的时间。我知道在POSIX平台上这样做的两种方法:使用nanosleep()或使用boost::this_thread::sleep()。出于好奇,我想知道这两种方法之间有什么区别。精度是否有任何差异,是否有任何理由不使用Boost方法?nanosleep()方法:#include...structtimespecsleepTime;structtimespecreturnTime;sleepTime.tv_sec=0;sleepTime.tv_nsec=1000;nanosleep(&sleepTime,&returnTime);boost方法:#

c++ - 如何从静态列表构造Boost bimap?

我有一个这样的双图:usingMyBimap=boost::bimaps::bimap,boost::bimaps::unordered_set_of>;我想从静态初始化列表构造它,因为它可以为std::map完成。:MyBimapmap{{a1,b1},{a2,b2},{a3,b3}};很遗憾,它不起作用,因为bimap不支持初始化列表,所以我尝试了一种解决方法。Boost的文档列出了以下构造函数:bimap();templatebimap(InputIteratorfirst,InputIteratorlast);bimap(constbimap&);所以我尝试了第二个,像这样:s