问题标签 [stream-operators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
292 浏览

c++ - 为什么 to_string 没有模板化?

我认为这to_string只是模板化并stringstream在引擎盖下使用。

不是这样吗?

我希望能够做到这一点:

但显然这不起作用,因为to_string没有模板化。

0 投票
2 回答
1513 浏览

c++ - nullptr 的运算符 <<(流输出)

考虑一段通用 C++ 代码,它将其参数的值输出到流中,以防它们不相等:

这只是一个示例,实际代码在将消息写入字符串流后会引发异常。operator <<对于定义的流,这适用于 2 个整数、2 个指针等。

当参数之一LOG_IF_NEnullptr:MSVC++2013 编译器给出error C2593: 'operator <<' is ambiguous.

问题的发生是因为nullptr有一个特殊的类型,并且operator <<没有在 STL 中为该类型定义。https://stackoverflow.com/a/21772973/1915854的答案建议定义operator <<std::nullptr_t

这是解决问题的正确方法吗?这不是 C++11/STL 中operator<<未定义的错误nullptr_t吗?在 C++14/17 中是否需要修复?或者它是故意的(因此一个人的私人定义operator<<可能有一个陷阱)?

0 投票
1 回答
1157 浏览

c++ - 使用 basic_ostream 重载 operator<<

为什么带有用户定义类的流操作的典型标头C通常是这样的:

而不是这样:

我的问题是为什么流运算符的通常重载是用 来完成的,它是ofstd::ostream的 typedef ,为什么不直接用 来完成?charstd::basic_ostreamstd::basic_ostream

例如:

这里operator<<写的限制我们只能使用专门用于char( std::ostream, std::ostringstream, ...) 的流对象。因此,如果 usingstd::ostream比 更受限制std::basic_ostream,为什么std::basic_ostream在谈论流运算符重载时从未提及?

0 投票
2 回答
664 浏览

java - 试图理解 Java8 中流的 distinct()

我正在阅读一本关于 Java8 的书,其中对流进行了解释。提到产生不同元素的相等性由hashCode()&equals()方法的实现决定。因此,我编写了以下代码以通过示例来理解:

它产生了以下输出:

我很困惑为什么在将同一个 Order 对象(2,140.5)上的 hashCode 方法与另一个 Order 对象(2,100.8)进行比较之前调用了两次。

提前致谢。

0 投票
3 回答
69 浏览

c++ - C++ 编译错误;流运算符重载

我正在学习 C++ 流运算符重载。无法在 Visual Studio 中编译它。

istream&运算符部分,编译器会突出显示紧随其后的克拉ins并说no operator >> matches these operands.

有人可以快速运行它并告诉我出了什么问题吗?

0 投票
1 回答
495 浏览

c++ - 运算符 << 在抽象类中,c++

如果我有一个抽象类,我们称它为“脊椎动物”,它有一个字段std::string name;,它有一个纯虚方法 virtual void print(std::ostream&) const noexcept = 0;,该方法将在子类中被覆盖并在operator<<.

我了解了多态性是如何工作的,以及如何operator<<在继承的类中实现。

我没有得到:

我不明白:如何operator<<在使用虚拟打印功能的那个抽象类中实现一个。为什么这段代码不起作用?我的抽象类需要有operator<<.

那是抽象类代码。

0 投票
2 回答
950 浏览

c++ - 将多个参数传递给流运算符

我有一个类,让我们Sample用可变参数模板参数来调用它。这个类包含一个函数run(Args... args)。这个类还实现了一个调用这个函数的流操作符。

该类如下所示:

现在我想使用流运算符来连接多个调用,通过元组的大括号初始化传递参数:

我知道我可以只写make_tuple(1, "msg", 2)并且它会工作,但我正在寻找一种不需要额外函数调用的解决方案,例如make_tuple.

有没有办法实现这样一个功能,我可以在大括号中传递参数(或者通过重载逗号运算符通过逗号分隔)?

0 投票
1 回答
503 浏览

c++ - 使用流运算符构建错误

由于我为 cout(ing) 我的类 Duree 实例插入了一个新的流运算符,因此无法构建代码块。

我在“Duree”类下启动了一个原型“afficher”

流操作符函数在类头之外。

并在源文件夹下的方法:

在主文件夹下,执行

构建控制台返回以下内容:

-------------- 构建:在 lesOperateurs2 中调试(编译器:GNU GCC 编译器)---------------

g++ -o bin/Debug/lesOperateurs2 obj/Debug/Duree.o obj/Debug/main.o
架构 x86_64 的未定义符号:“operator<<(std::__1::basic_ostream >&, Duree const&)”,引用自:main.o ld中的_main:未找到架构x86_64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)进程以状态1终止(0分钟,0秒(s)) 0 个错误,0 个警告(0 分钟,0 秒)

它有时似乎有效,您是否知道正在发生的事情。

完整代码如下

Durée.h

杜雷.cpp

和 main.cpp

0 投票
1 回答
53 浏览

python - 如何同时在命令窗口和文本文档中获取流输出

使用os.system('ping 127.0.0.1 -t >> new.txt'). 我能够在new.txt文档中获得 ping 结果。在这样的流输出的情况下,如何同时在命令窗口和文本文件中获取 ping 结果...?

0 投票
1 回答
809 浏览

c++ - 如何为 boost log 和自定义类型定义输出流运算符

我能够为一个简单的结构定义输出流运算符,但是,不能为 std::array 定义。以下代码无法编译。出了什么问题,我该如何解决?

错误来了。

GCC(提升 1.55,gcc-4.9.2):

Clang 错误(提升 1.64,clang-800.0.42.1):