当前位置:  开发笔记 > 编程语言 > 正文

如何从bool转为void*?

如何解决《如何从bool转为void*?》经验,为你挑选了1个好方法。

我正在尝试使用mingw在Windows上为gtkmm构建cairomm.编译在函数调用中断,该函数调用具有将bool的reinterpret_cast执行为void*的参数.

cairo_font_face_set_user_data(cobj(), &USER_DATA_KEY_DEFAULT_TEXT_TO_GLYPHS, reinterpret_cast(true), NULL);

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



1> Judge Maygar..:

我看到这是用户数据,你可以控制对值的处理,首先将bool转换为int : reinterpret_cast (static_cast (true)). 这样做有意义,因为void*参数取代了此ANSI-C库中的模板函数.您所需要的只是一个真/假值.因此,只要将其作为指针进行临时编码就不存在危险.真的,你最好reinterpret_cast (1)还是这样:或者reinterpret_cast (+true).


想让它看起来很可爱吗?尝试reinterpret_cast (+ true):P
@sahas - 这篇Dan Saks文章很好地描述了C/C++中各种铸造风格之间的差异:http://www.ddj.com/article/printableArticle.jhtml?articleID = 191900588&dept_url =/cpp /
推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有