std::ios_base::register_callback
std::ios_base::register_callback (콜백 등록)
imbue(), std::basic_ios::copyfmt(), ~ios_base()가 호출될 때 호출될 사용자 정의 함수를 등록하는 함수예요. 등록된 콜백은 매번 호출돼요.
출처: cppreference
본문
void register_callback( event_callback function, int index );
imbue(), std::basic_ios::copyfmt(), ~ios_base()가 호출될 때 호출될 사용자 정의 함수를 등록해요. 등록된 콜백은 매번 호출돼요. 이벤트 타입(event 타입의 값)이 첫 번째 인자로 전달되고, 호출자를 구분하는 데 쓰일 수 있어요. 콜백은 등록 순서의 역순으로 호출돼요(즉 register_callback()이 콜백 스택에 콜백 쌍을 푸시해요). 콜백 함수 내에서 register_callback()을 호출해 새 콜백을 추가하면, 그 새 콜백은 다음 이벤트에서만 호출돼요. 사용자 정의 콜백 함수는 예외를 던지면 안 돼요.
매개변수
function— 이벤트 시 호출될 함수(event_callback타입의 함수 포인터).index— 함수에 전달될 사용자 지정 매개변수.
반환값
(없음)
참고
한번 등록되면 콜백을 등록 해제할 수 없어요. 스트림 객체의 나머지 수명 동안 그 일부로 남아요. 콜백의 동작을 변경해야 하면 xalloc()로 얻은 index를 사용해 해당 iword/pword를 갱신하는 방식이 흔히 쓰여요.