std::experimental::ostream_joiner<DelimT,CharT,Traits>:: operator=
From cppreference.net
<
cpp
|
experimental
|
ostream joiner
|
template
<
class
T
>
ostream_joiner & operator = ( const T & value ) ; |
(1) | (库基础技术规范 v2) |
|
ostream_joiner
&
operator
=
(
const
ostream_joiner
&
other
)
=
default
;
|
(2) |
(库基础技术规范 v2)
(隐式声明) |
|
ostream_joiner
&
operator
=
(
ostream_joiner
&&
other
)
=
default
;
|
(3) |
(库基础技术规范 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."; // 使用分隔符作为前缀 }
输出:
First, do no harm.