gpt4 book ai didi

c++ - 如何从 bool 转换为 void*?

转载 作者:太空狗 更新时间:2023-10-29 23:24:32 30 4
gpt4 key购买 nike

我正在尝试使用 mingw 在 Windows 上为 gtkmm 构建 cairomm。编译在一个函数调用处中断,该函数调用具有一个参数,该参数将 bool 重新解释为 void*。

cairo_font_face_set_user_data(cobj(), &USER_DATA_KEY_DEFAULT_TEXT_TO_GLYPHS, reinterpret_cast<void*>(true), NULL);

这是代码中断的地方,原因是“从 bool 到 void* 的 reinterpret_cast 无效”。为什么会发生这种情况,我如何修改这一行以使其编译?需要帮助

最佳答案

我看到这是用户数据,您可以控制对值的处理,首先将 bool 转换为 int:reinterpret_cast<void *> (static_cast<int> (true)) .这样做是有意义的,因为 void* 参数取代了这个 ANSI-C 库中的模板函数。您只需要一个真/假值。因此,只要有详细记录,将其临时编码为指针应该没有危险。真的,你会更好:reinterpret_cast<void *> (1)reinterpret_cast<void *> (+true) .

关于c++ - 如何从 bool 转换为 void*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/606728/

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