草庐IT

BOOST_STATIC_ASSERT

全部标签

c++ - boost 序列化多个对象

与thisone稍微相关的问题和thisone.基本上,我想在对象出现时对其进行序列化,就像日志文件一样,只是我想稍后将它们反序列化。这意味着我最初没有所有对象。从之前的回答来看,如果打开同一个存档,似乎可以继续向存档中添加越来越多的对象。但是我该如何提取它们呢?我是否需要在每次提取之前向前看并查看是否达到eof?我是否应该在保存例程中放置一个换行符,以便以后可以逐行读取输入(这可能只适用于二进制存档(可能还有文本),因为xml使用换行符,如果二进制可能使用偶尔换行)?如果到达文件末尾,>>操作可能会抛出异常,我可以将它包装在一个无限循环中,并用trycatch绕过它?如果我想对不同种

c++ - boost::interprocess::basic_string 作为 std::string

我正在尝试用constboost::interprocess::basic_string&替换返回conststd::string&的类方法。我面临的主要挑战是这两个类之间的不兼容性,尽管它们的实现相似。为了更清楚的解释,我将把它放入代码中classA{std::stringm_str;conststd::string&StrVal(){returnm_str;}}现在这个类看起来像这样:typedefboost::interprocess::allocatorShmemAllocatorChar;typedefboost::interprocess::basic_string,Shm

c++ - boost 测试库: Multiple definition error

我正在尝试在QTCreatorforWindows中测试我完成的库(微积分)。我已经创建了一个主文件,并在单独的文件中创建了一个类用于测试。如果我编译在http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/utf/user-guide/test-organization/manual-test-suite.html中找到的示例它有效,所以在http://www.boost.org/doc/libs/1_47_0/libs/test/doc/html/utf/user-guide/test-organization/manual-

c++ - reinterpret_cast<int*>(char*) 与 static_cast<int*>(static_cast<void*>(char*)) - 使用哪个?

当你动态分配了一个char*类型的缓冲区并想将它转换为特定类型时,你是否应该使用类似的东西reinterpret_cast(char*)或者类似的东西static_cast(static_cast(char*))为什么?我个人很想使用后者,因为对我来说,它并不是真正的数据“重新解释”(而只是一种分配缓冲区的机械方式)而且它看起来不像是一个来源错误的方式可能与典型的reinterpret_cast相同,但这是正确的直觉吗? 最佳答案 AccordingtoDaveAbrahams,使用链式static_casts是强制指针类型的正确、

c++ - 文件 basic_socket.hpp 中的 lib boost asio 1.47.0 出错

当我尝试编译时,以下代码出现错误:voidServer::accept(void){Network::ptrconnection=Network::initialize(this->my_acceptor.get_io_service());this->my_acceptor.async_accept(connection->socket(),bind(&Server::endCmd,this,*connection,placeholders::error));}voidServer::endCmd(Networkconnection,constboost::system::error

c++ - 使用 Boost.GIL 将图像转换为 "raw"字节

目标我正在尝试转向BoostGIL以替换我已经实现的一些类似功能,这些功能已达到其可维护生命的终点。我现有的代码可以使用uint8_t*处理24BPP、8位RGB图像.我无法更改它,因为相同的接口(interface)用于显示来自不同位置(例如OpenGL缓冲区)的图像,并且已经有相当多的代码。因此,我尝试逐步使用GIL,首先读取文件并将像素逐字节复制到std::vector中我可以用它来管理存储,但仍然得到uint8_t*通过使用&vector[0].这可以透明地放在现有接口(interface)后面,直到重构有意义为止。我尝试过的我认为这应该是使用copy_pixels()的简单案

c++ - static_cast 和临时创建(最终版)

先决条件:要理解这个问题,请先阅读以下问题及其答案:Castauto_ptrtoauto_ptr在Castauto_ptrtoauto_ptr史蒂夫回答说,“您的static_cast会将auto_ptr复制到一个临时文件,因此aS将被重置,当临时文件(在语句末尾)时,资源将被销毁。”我对static_cast时临时创建的过程很感兴趣叫做。我想要我可以跟踪的代码以查看此效果。我不能使用static_cast>...因为它不能被编译,所以我需要写一些模拟类而不是auto_ptr并观看临时创建的过程。我也明白临时创建与复制构造函数调用密切相关。auto_ptr的所有权丢失是通过设置_rad

c++ - 如何制作适用于 gcc 4.6 的递归 boost::variant?

我正在解码bencode,并且有一些代码适用于gcc4.4。但是最近升级到gcc4.6后,此代码不再生成:#ifndefBENCODE_VALUETYPES_H#defineBENCODE_VALUETYPES_H#include#include#include#includenamespacebencode{typedefboost::make_recursive_variant,std::map>::typeValue;typedefstd::mapValueDictionary;typedefstd::vectorValueVector;};#endifg++给出了这个错误信息:

c++ - 使用带有绑定(bind)的 boost 字符串算法谓词

编译这个例子#include#include#include#include#includeusingnamespacestd;intmain(int,char**){vectortest;test.push_back("xtest2");test.push_back("test3");ostream_iteratorout_it(cout,"\n");remove_copy_if(test.begin(),test.end(),out_it,boost::bind(boost::algorithm::starts_with,_1,"x"));}因错误而失败nomatchingfunc

c++ - 使用挂起的 read_async_some 关闭 boost::asio::serial_port

我正在链接read_async_some()调用以从串行端口异步读取。在某些时候,我需要取消异步读取并在关联的处理程序中检测到这一事实。来自thedocumentationforcancel(),我希望通过检查传递给我的处理程序的error_code来做到这一点:Thisfunctioncausesalloutstandingasynchronousreadorwriteoperationstofinishimmediately,andthehandlersforcancelledoperationswillbepassedtheboost::asio::error::operatio