diff --git a/src/c_wrapper/platform.cpp b/src/c_wrapper/platform.cpp index b08e1b17814cebcd965cdc48bf3e2d31de71dfc2..f75f4049b8caa145911f4c6347ffb848c62258a4 100644 --- a/src/c_wrapper/platform.cpp +++ b/src/c_wrapper/platform.cpp @@ -3,7 +3,6 @@ #include "clhelper.h" #include <stdlib.h> -#include <regex> template class clobj<cl_platform_id>; template void print_arg<cl_platform_id>(std::ostream&, @@ -29,8 +28,6 @@ platform::get_info(cl_uint param_name) const } } -static const std::regex ver_regex("^OpenCL ([0-9]+)\\.([0-9]+).*"); - void platform::get_version(cl_platform_id plat, int *major, int *minor) { @@ -46,14 +43,14 @@ platform::get_version(cl_platform_id plat, int *major, int *minor) } pyopencl_call_guarded(clGetPlatformInfo, plat, CL_PLATFORM_VERSION, size_arg(name, size), buf_arg(size)); - std::cmatch ver_match; - if (!std::regex_match(name, ver_match, ver_regex)) { + *major = *minor = -1; + sscanf(name, "OpenCL %d.%d", major, minor); + // Well, hopefully there won't be a negative OpenCL version =) + if (*major < 0 || *minor < 0) { throw clerror("Platform.get_version", CL_INVALID_VALUE, "platform returned non-conformant " "platform version string"); } - *major = atoi(name + ver_match.position(1)); - *minor = atoi(name + ver_match.position(2)); } // c wrapper