Introduce __HIP_DISABLE_CPP_FUNCTIONS__ macro to disable C++ wrappers
hipMalloc and hipHostMalloc are C++ function templates by default. In some
applications they need to discover the decltype of underlying C functions. In
this commit, a new macro __HIP_DISABLE_CPP_FUNCTIONS__ is introduced to
suppress the C++ function templates.
Existing HIP applications don't need to be changed. hipMalloc and hipHostMalloc
will behave just the same.
For new applications which depends on identifying decltypes of underlying C
functions, __HIP_DISABLE_CPP_FUNCTIONS__ shall be defined prior to including
HIP headers.
[ROCm/clr commit: f4e1f74e9e]
Этот коммит содержится в:
@@ -318,9 +318,13 @@ enum hipComputeMode {
|
||||
*
|
||||
* Perform automatic type conversion to eliminate need for excessive typecasting (ie void**)
|
||||
*
|
||||
* __HIP_DISABLE_CPP_FUNCTIONS__ macro can be defined to suppress these
|
||||
* wrappers. It is useful for applications which need to obtain decltypes of
|
||||
* HIP runtime APIs.
|
||||
*
|
||||
* @see hipMalloc
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
#if defined(__cplusplus) && !defined(__HIP_DISABLE_CPP_FUNCTIONS__)
|
||||
template <class T>
|
||||
static inline hipError_t hipMalloc(T** devPtr, size_t size) {
|
||||
return hipMalloc((void**)devPtr, size);
|
||||
|
||||
Ссылка в новой задаче
Block a user