인수 없이 자신의 Manipulators를 작성합니다.
인수를 사용 하지 않는 manipulators 쓰는 클래스 파생 하지도 복잡 한 매크로 사용 해야 합니다.프린터 쌍 <ESC> [굵게 표시 모드로 전환 합니다.을 요구 한다고 가정이 쌍은 스트림에 직접 삽입할 수 있습니다.
cout << "regular " << '\033' << '[' << "boldface" << endl;
하거나 정의할 수 있습니다의 bold 문자를 삽입 하는 manipulator.
ostream& bold( ostream& os ) {
return os << '\033' << '[';
}
cout << "regular " << bold << "boldface" << endl;
전역으로 정의 된 bold 함수에서 수행 된 ostream 인수 및 반환을 참조는 ostream 참조.모든 개인 클래스 요소에 액세스할 수 필요가 없습니다 없으므로 멤버 함수 또는 친구 않습니다.bold 함수를 스트림에 연결 하기 때문에 스트림의 << 연산자가 오버 로드 함수, 해당 형식을 그대로 다음과 같은 선언을 사용 하 여:
_Myt& operator<<(ios_base& (__cdecl *_Pfn)(ios_base&))
{
// call ios_base manipulator
(*_Pfn)(*(ios_base *)this);
return (*this);
}
다른 오버 로드 된 연산자를 확장 합니다이 기능을 사용할 수 있습니다.이 경우 부수적 되는 bold 는 스트림에 문자를 삽입 합니다.인접 한 문자를 인쇄할 때이 스트림으로 반드시 삽입 될 때 함수가 호출 됩니다.따라서, 인쇄는 스트림을 버퍼링 때문에 지연 될 수 있습니다.