草庐IT

basic_streambuf

全部标签

c++ - boost::asio 从套接字读取 n 个字节到 streambuf

我有一个序列化结构,它通过套接字发送。我需要分块读取它,因为其中一个字段包含剩余数据的大小:我需要读取前几个字节,找出长度并读取其余部分。这是我得到的:boost::asio::streambufbuffer;boost::system::error_codeerr_code;//hereIneedtoreadonlyfirst16bytesboost::asio::read(socket,buffer,err_code);std::istreamis(&buffer);boost::archive::binary_iarchiveia(is);ia>>my_struct;我看过了bo

c++ - 绕过 vector<bool>,使用 basic_string<bool>?

这是一个安全的解决方法吗?我想使用vectorbool但需要将指针传递给需要C样式数组的旧代码。typedefstd::basic_stringvector_bool;intmain(){vector_boolab;ab.push_back(true);ab.push_back(true);ab.push_back(true);ab.push_back(false);bool*b=&ab[0];b[1]=false;}编辑:感谢您对其他解决方案的建议,但我真的很想对我的上述解决方案做出明确的回答。谢谢。 最佳答案 我不确定std::

c++ - basic_streambuf::seekoff 当 ios_base::in | 应该返回什么? ios_base::out 被指定了吗?

27.6.3.4.2Buffermanagementandpositioningpos_typeseekoff(off_typeoff,ios_base::seekdirway,ios_base::openmodewhich=ios_base::in|ios_base::out);Effects:Altersthestreampositionswithinoneormoreofthecontrolledsequencesinawaythatisdefinedseparatelyforeachclassderivedfrombasic_streambufinthisClause(27.8

c++ - 使用 boost::asio::streambuf

寻找boost::asio(以及自己的boost)决定编写异步服务器。为了存储传入数据,我使用boost::asio::streambuf。在这里我有一个问题。当我收到来自客户端的第二条消息和随后的消息时,我看到缓冲区中包含来自先前消息的数据。尽管我在输入缓冲区调用了Consume方法。怎么了?classtcp_connection//Usingshared_ptrandenable_shared_from_this//becausewewanttokeepthetcp_connectionobjectalive//aslongasthereisanoperationthatrefer

c++ - 如何从 std::basic_ios 为 OS X 上的 clang 获取文件描述符?

我正在将一些代码移植到DarwinOSX,作为更改的一部分,我们从gcc转到clang编译器。代码中有一个2005年的函数,在网上多处贴过。它为几个不同的旧版本GCC提供了功能,我已经编辑了除最后一个版本之外的所有功能,v3.4.0或更高版本。该代码取决于两个GCC特定类:__gnu_cxx::stdio_filebuf和__gnu_cxx::stdio_sync_filebuf。//!Similartofileno(3),buttakingaC++streamasargumentinsteadofa//!FILE*.Notethatthereisnowayforthelibraryt

c++ - 为什么 std::basic_ios 会重载一元逻辑否定运算符?

C++IO流的基类std::basic_ios定义了operatorvoid*()以返回!fail()和operator!()返回fail()。这让我想知道为什么我们根本需要operator!()。当然,!is也可以通过隐式调用operatorvoid*()并取反其结果来工作。我在这里遗漏了什么,还是纯粹出于历史原因定义了std::basic_ios::operator!()?Aquestiononcomp.lang.c++.moderated也没有带来任何答案。 最佳答案 使用旧的(阅读:cfront后不久)C++编译器,编译器不

c++ - 我应该使用其他人的 streambuf 创建一个临时的 ostream 吗?

假设我有一个接受ostream&的函数参数o并写入该ostream。一个operator实现将是一个很好的例子。ostream&operator在该函数中,我可能想要指定流的格式化选项。例如,无论o如何打印,我可能都希望将数字打印为十六进制。在传入函数时配置。其次,我可能希望能够对当前的格式标志做出假设。例如,除非我另有要求,否则能够假定数字格式为十进制会很好。最后,当函数退出时,我想要o上的格式化选项与调用函数之前相同,以便在调用者看来没有变化。这只是对来电者的礼貌问题。到目前为止,我已经通过创建本地ostringstream实现了这一点在函数中,完成我所有的工作(包括设置格式选项)

c++ - 从 DLL 导出 STL std::basic_string 模板时,出现 LNK2005 错误

好的,所以我已经阅读了几个关于这个主题的问题和文章,我觉得我了解基础知识,但我仍然遇到问题。我有一个DLL,它导出一个以std::string作为成员的类。我的主程序包含也有字符串的类,并且它使用DLL。如果我在VS2010中编译DLL,我会收到以下警告:warningC4251:'MyClass::data':class'std::basic_string'needstohavedll-interfacetobeusedbyclientsofclass'MyClass'当我编译EXE时,我得到了相同的警告,但没有错误,程序编译并运行。事实上,这是一个大项目,所以我收到了40条警告,我

c++ - basic_istream<>::tellg() 和 basic_ostream<>::tellp() 的区别

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。我只是想知道为什么成员函数tellg()在basic_istream中定义类和tellp()在basic_ostream中定义类有不同的名称。是因为basic_fstream源自basic_istream和basic_ostream?

第二章:Scan and ATPG Basics

在开始测试过程之前,必须要了解某些测试的概念,理解这些概念,才能为了设计确定最好的测试方案扫描电路有助于测试生产,并且能够减少外部测试仪的使用,这里有两种主要类型的扫描电路:internalscan和boundaryscan。internalscan也被称为scandesign是在内部改进设计的电路来提高电路的可测试性。扫描设计修改了初始设计中的电路,而边界扫描在设计的外围增加了扫描电路,使芯片上的内部电路通过标准版接口可访问,增加的电路增强了芯片、芯片I/Opads以及芯片与其他电路板的互连的电路板可测试性。ScanDesignOverviewinternalscan或者scandesign