jjzjj

ostream_joiner

全部标签

android - C++ - 继承 ostream 在 android 上崩溃但在 windows 上不崩溃

我已经实现了一个简单的ostream和streambuf类。出于某种原因,当我尝试实例化我的AndroidLogOStream对象时它崩溃了。注意:我的Application.mk中有STLport_staticclassAndroidLogStreamBuf:publicstd::streambuf{public:inlineAndroidLogStreamBuf():std::streambuf(){//std::cout它是准系统,在Windows上运行良好。它在android上编译得很好,但由于某种原因它崩溃了。它尝试执行的最后一行在_streambuf.c:46:templa

java - 使用 JNI 通过 std::ostream 从 C++ 获取文本数据到 Java

我有一个C++类,它采用std::ostream作为参数,以便连续输出文本(跟踪信息)。我需要尽可能高效地将此文本传送到Java端。最好的方法是什么?我正在考虑使用直接缓冲区,但另一种方法是将所有函数调用转移到Java并在那里进行所有处理,但似乎我需要大量的JNI调用。如果可以显示确切实现方法的示例,那将非常有帮助,或者如果已经存在一些代码可以执行此操作(可能是另一个项目的一部分)。另一个帮助是将它直接连接到标准的Java流构造,这样整个实现对开发人员来说是完全透明的。(编辑:我找到了SharingoutputstreamsthroughaJNIinterface,这似乎是重复的,但并

java - Guava Joiner 没有前缀和后缀的能力

这个问题在这里已经有了答案:Isthereawaytojoinstrings,eachwithaspecificsurroundingstring?(3个答案)关闭8年前。我要求Joiner能够为元素添加前缀和后缀。例如Stringstr[]={"a","b","c"};Joiner.on(",").prefix("'").suffix("'").join(str);预期输出为:'a','b','c'对此我们有什么替代方案吗?因为Guava不这样做(或者我不知道)。使用Java8有更好的选择吗?

java - 在 JNI 中连接 C++ istream/ostream 和 Java InputStream/OutputStream

是否有任何现有的C++/JNI库可以在JavaInputStream和C++istream以及JavaOutputStream之间编码访问和C++ostream?特别是,我希望Java应用程序能够将InputStream或OutputStream传递到使用iostreams作为其流接口(interface)的C++库中.如果不存在现有库,我需要在istream/ostream实现中实现的最低功能是什么以支持它?更糟糕的是,我还需要支持seek和tell,尽管原则上我应该能够使用mark、重置,然后跳过以执行我需要的操作。由于这些流可能非常大,我不想简单地将它们加载到ByteArray中

C++ 缩进重载 ostream 运算符

假设Ì有一些类并通过重载左移运算符添加了输出功能:structFoo{inti=1;std::strings="hello";};auto&operator什么是缩进输出的好方法?例子:如果我写std::cout输出是:1hello显然,hello没有缩进。是否有一种简单的方法来缩进整个输出(而不仅仅是第一个元素)? 最佳答案 您正在序列化Foo对象吗?所以从逻辑上讲,Foo的序列化字符串是Foo的实现细节。您可以按照这些思路编写您自己的流类或其他东西,但那是对问题的过度设计。auto&operator

c++ - 编写一个 ostream 过滤器?

我想写一个简单的ostream,它包装一个参数ostream并在将它传递到参数流之前以某种方式更改流。转换很简单,例如更改字母或删除单词从ostream继承的简单类会是什么样子?我应该覆盖哪些方法? 最佳答案 std::ostream不是实现过滤的最佳位置。它没有适当的虚函数来让您执行此操作。您可能想要编写一个派生自std::streambuf的类,其中包含一个包装的std::ostream(或一个包装的std::streambuf),然后使用此std::streambuf创建一个std::ostream。std::streambu

通用模板 ostream << 运算符的 C++ 不明确重载

这个问题紧接我之前的问题:Genericoperator我想在哪里实现一个通用的适用于拥有to_str()的任何类的运算符方法。我已经成功地检查了一个类是否实现了to_str()方法与用途std::cout感谢这个answer.但是,我在编写模板时遇到困难ostream运营商制作std::cout有效。以下测试代码:#include#include#includetemplateusingvoid_t=void;templatestructhas_to_string:std::false_type{};templatestructhas_to_string().to_str())>>:

c++ - 如何在没有此运算符的情况下为类型实现默认运算符<<(ostream&, T)?

自std::to_string添加到c++11,我开始实现to_string而不是更传统的operator.我需要将两者链接在一起,以便合并依赖operator的库.我希望能够表达如果T有operator,用它;否则,使用std::to_string.我正在制作一个更有限的版本的原型(prototype),该版本支持operator对于所有枚举类。enumclassMyEnum{A,B,C};//plainversionworks//std::ostream&operator::value>::type>std::ostream&operator编译器说error:nomatchfor

c++ - std::experimental::ostream_joiner 和 std::pair

在c++17/g++7中,终于有了怀念已久的ostream_joiner。它可以正确输出到ostream,使用中缀定界符分隔集合元素。#include#include#include#include#include#includeusingstring=std::string;#if1structpair{stringfirst;stringsecond;};#elseusingpair=std::pair;#endifstd::ostream&operatorpairs={{"foo","bar"},{"baz","42"}};std::copy(std::begin(pairs),

c++ - 为什么 ostream::operator<< 是 char 参数的全局函数?

根据http://www.cplusplus.com/reference/iostream/ostream/operator%3C%3C/operator 最佳答案 operator对于streambuf*(或int这听起来更简单)和char既可以作为成员(member)运营商实现,也可以作为非成员(member)(免费)运营商实现。我的猜测是,这是由于在定义C++时出现了追溯兼容性问题:可能较旧的代码依赖于成员operator,因此他们决定不将其作为免费运营商移动。C++标准库(以及STL)有许多像这样的不均匀性。