std::experimental::ostream_joiner<DelimT,CharT,Traits>::operator=
来自 cppreference.com
< cpp | experimental | ostream joiner
template< class T > ostream_joiner& operator=( const T& value ); |
(1) | (库基础 TS v2) |
ostream_joiner& operator=( const ostream_joiner& other ) = default; |
(2) | (库基础 TS v2) (隐式声明) |
ostream_joiner& operator=( ostream_joiner&& other ) = default; |
(3) | (库基础 TS v2) (隐式声明) |
1) 首先,如果私有“第一个元素”标志为 false,则将分隔符
delim
插入到与该迭代器关联的输出流 os
中,就好像通过 os << delim; 一样。 然后,无条件地将“第一个元素”标志设置为 false,并将 value 插入到输出流中,就好像通过 os << value; 一样。
假设
out_stream
、delim
和 first_element
分别表示私有流指针、分隔符和“第一个元素”标志成员。 那么此函数等效于if (!first_element) *out_stream << delim; first_element = false; *out_stream << value; return *this;
2,3) 隐式声明的复制/移动赋值运算符,它复制/移动赋值私有流指针、分隔符和“第一个元素”标志成员。
[编辑] 参数
value | - | 要写入流的对象 |
other | - | 要分配给此对象的 ostream_joiner 对象 |
[编辑] 返回值
*this.
[编辑] 示例
运行此代码
#include <experimental/iterator> #include <iostream> int main() { auto joiner = std::experimental::make_ostream_joiner(std::cout, ", "); joiner = "First"; joiner = "do no harm."; // prefixes with the delimiter }
输出
First, do no harm.