#include <iostream>
static int index()
{
static int idx = std::ios_base::xalloc();
return idx;
}
void callback(std::ios_base::event evt, std::ios_base& str, int index)
{
(void)str;
(void)index;
if (evt == std::ios_base::erase_event)
{
std::cout << "Erase event" << std::endl;
}
}
int main()
{
std::cout.register_callback(callback, index());
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RhdGljIGludCBpbmRleCgpCnsKICAgIHN0YXRpYyBpbnQgaWR4ID0gc3RkOjppb3NfYmFzZTo6eGFsbG9jKCk7CiAgICByZXR1cm4gaWR4Owp9Cgp2b2lkIGNhbGxiYWNrKHN0ZDo6aW9zX2Jhc2U6OmV2ZW50IGV2dCwgc3RkOjppb3NfYmFzZSYgc3RyLCBpbnQgaW5kZXgpCnsKICAgICh2b2lkKXN0cjsKICAgICh2b2lkKWluZGV4OwogICAgaWYgKGV2dCA9PSBzdGQ6Omlvc19iYXNlOjplcmFzZV9ldmVudCkKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIkVyYXNlIGV2ZW50IiA8PCBzdGQ6OmVuZGw7CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgc3RkOjpjb3V0LnJlZ2lzdGVyX2NhbGxiYWNrKGNhbGxiYWNrLCBpbmRleCgpKTsKfQ==