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,则如同用 os << delim; 插入分隔符
delim
到与此迭代器关联的输出流 os
中。 然后,无条件地设置“首元素”标志为 false,然后如同用 os << value; 插入 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.