gpt4 book ai didi

c++ - 注册回调时不输出

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:36 25 4
gpt4 key购买 nike

我有一个函数,它被编码为在调用全局 basic_ostream 对象的析构函数时将文本输出到标准输出。我已经在流中注册了这个函数,但由于某种原因它没有做任何事情:

void callback(std::ios_base::event evt, std::ios_base& str, int index)
{
if (evt == std::ios_base::erase_event)
{
std::cout << "Erase event";
}
}

int main()
{
std::cout.register_callback(callback, index());
}

没有错误/警告,它不会输出任何内容,除非我向析构函数添加显式调用:

std::cout.~basic_ostream<char>(); // "Erase event"

我意识到这样做是错误的,所以我不会将其视为解决方法。我什至尝试刷新缓冲区的输出但无济于事。为什么会这样?我在 GCC 4.8 上运行我的代码。 Here is a demo.

最佳答案

您正试图在 std::cout 被销毁时使用 std::cout 输出文本?请不要告诉我这应该有效...

关于c++ - 注册回调时不输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19748431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com