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) | (라이브러리 fundamentals TS v2) |
|
ostream_joiner
&
operator
=
(
const
ostream_joiner
&
other
)
=
default
;
|
(2) |
(라이브러리 fundamentals TS v2)
(암시적으로 선언됨) |
|
ostream_joiner
&
operator
=
(
ostream_joiner
&&
other
)
=
default
;
|
(3) |
(라이브러리 fundamentals TS v2)
(암시적으로 선언됨) |
1)
먼저, private "첫 번째 요소" 플래그가
false
인 경우, 구분자
delim
를 이 반복자와 연결된 출력 스트림
os
에
os
<<
delim
;
와 같이 삽입합니다.
그런 다음, 무조건 "첫 번째 요소" 플래그를
false
로 설정하고,
value
를 출력 스트림에
os
<<
value
;
와 같이 삽입합니다.
private stream pointer, delimiter, "first element" flag 멤버를 각각
out_stream
,
delim
,
first_element
로 나타낼 때, 이 함수는 다음 코드와 동등합니다:
if (!first_element) *out_stream << delim; first_element = false; *out_stream << value; return *this;
2,3)
private 스트림 포인터, 구분자, "첫 번째 요소" 플래그 멤버들을 복사/이동 할당하는 암시적으로 선언된 복사/이동 할당 연산자.
매개변수
| 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.