我想做的事情对我来说似乎相当简单,但目前我觉得OpenCL无法做到这一点:
我想在发布之前检查一些cl_mem
对象是否真正有效:
cl_mem someimage;
if ( isvalid(someimage) ) clReleaseMemObject(someobject);
原因很简单:如果我在未初始化clReleaseMemObject
的情况下致电someimage
,我的程序就会崩溃。我可以在电话旁边放一个try ... catch
,但这对我来说似乎有些肮脏。
clGetImageInfo(someimage)
之类的任何调用如果未初始化,也会崩溃。
我如何实施isvalid(someimage)
?
非常感谢任何提示, 雅各布
答案 0 :(得分:0)
在Khronos论坛(见http://www.khronos.org/message_boards/viewtopic.php?f=28&t=4995)中,我了解到cl_mem
是指针类型,因此可以在发布或查询之前保存初始化为nullptr
并进行检查。当然,堆栈上完全未初始化的指针会产生错误。
感谢notzed。