问题标签 [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.
c++ - 为什么 to_string 没有模板化?
我认为这to_string
只是模板化并stringstream
在引擎盖下使用。
不是这样吗?
我希望能够做到这一点:
但显然这不起作用,因为to_string
没有模板化。
c++ - nullptr 的运算符 <<(流输出)
考虑一段通用 C++ 代码,它将其参数的值输出到流中,以防它们不相等:
这只是一个示例,实际代码在将消息写入字符串流后会引发异常。operator <<
对于定义的流,这适用于 2 个整数、2 个指针等。
当参数之一LOG_IF_NE
是nullptr
: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<<
可能有一个陷阱)?
c++ - 使用 basic_ostream 重载 operator<<
为什么带有用户定义类的流操作的典型标头C
通常是这样的:
而不是这样:
我的问题是为什么流运算符的通常重载是用 来完成的,它是ofstd::ostream
的 typedef ,为什么不直接用 来完成?char
std::basic_ostream
std::basic_ostream
例如:
这里operator<<
写的限制我们只能使用专门用于char
( std::ostream
, std::ostringstream
, ...) 的流对象。因此,如果 usingstd::ostream
比 更受限制std::basic_ostream
,为什么std::basic_ostream
在谈论流运算符重载时从未提及?
java - 试图理解 Java8 中流的 distinct()
我正在阅读一本关于 Java8 的书,其中对流进行了解释。提到产生不同元素的相等性由hashCode()
&equals()
方法的实现决定。因此,我编写了以下代码以通过示例来理解:
它产生了以下输出:
我很困惑为什么在将同一个 Order 对象(2,140.5)上的 hashCode 方法与另一个 Order 对象(2,100.8)进行比较之前调用了两次。
提前致谢。
c++ - C++ 编译错误;流运算符重载
我正在学习 C++ 流运算符重载。无法在 Visual Studio 中编译它。
在istream&
运算符部分,编译器会突出显示紧随其后的克拉ins
并说no operator >> matches these operands
.
有人可以快速运行它并告诉我出了什么问题吗?
c++ - 运算符 << 在抽象类中,c++
如果我有一个抽象类,我们称它为“脊椎动物”,它有一个字段std::string name;
,它有一个纯虚方法
virtual void print(std::ostream&) const noexcept = 0;
,该方法将在子类中被覆盖并在operator<<
.
我了解了多态性是如何工作的,以及如何operator<<
在继承的类中实现。
我没有得到:
我不明白:如何operator<<
在使用虚拟打印功能的那个抽象类中实现一个。为什么这段代码不起作用?我的抽象类需要有operator<<
.
那是抽象类代码。
c++ - 将多个参数传递给流运算符
我有一个类,让我们Sample
用可变参数模板参数来调用它。这个类包含一个函数run(Args... args)
。这个类还实现了一个调用这个函数的流操作符。
该类如下所示:
现在我想使用流运算符来连接多个调用,通过元组的大括号初始化传递参数:
我知道我可以只写make_tuple(1, "msg", 2)
并且它会工作,但我正在寻找一种不需要额外函数调用的解决方案,例如make_tuple
.
有没有办法实现这样一个功能,我可以在大括号中传递参数(或者通过重载逗号运算符通过逗号分隔)?
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
python - 如何同时在命令窗口和文本文档中获取流输出
使用os.system('ping 127.0.0.1 -t >> new.txt')
. 我能够在new.txt
文档中获得 ping 结果。在这样的流输出的情况下,如何同时在命令窗口和文本文件中获取 ping 结果...?
c++ - 如何为 boost log 和自定义类型定义输出流运算符
我能够为一个简单的结构定义输出流运算符,但是,不能为 std::array 定义。以下代码无法编译。出了什么问题,我该如何解决?
错误来了。
GCC(提升 1.55,gcc-4.9.2):
Clang 错误(提升 1.64,clang-800.0.42.1):