18#ifndef __itkOpenCLGlobal_h
19#define __itkOpenCLGlobal_h
28template<
typename TObjectType >
30 const std::unique_ptr< TObjectType > &p )
35#define ITK_OPENCL_DECLARE_PRIVATE( Class ) \
36 inline Class ## Pimpl * d_func() \
38 return reinterpret_cast< Class ## Pimpl * >( OpenCLGetPtrHelper( d_ptr ) ); \
40 inline const Class ## Pimpl * d_func() const { return reinterpret_cast< const Class ## Pimpl * >( OpenCLGetPtrHelper( \
42 friend class Class ## Pimpl;
44#define ITK_OPENCL_DECLARE_PRIVATE_D( Dptr, Class ) \
45 inline Class ## Pimpl * d_func() \
47 return reinterpret_cast< Class ## Pimpl * >( Dptr ); \
49 inline const Class ## Pimpl * d_func() const { return reinterpret_cast< const Class ## Pimpl * >( Dptr ); } \
50 friend class Class ## Pimpl;
52#define ITK_OPENCL_DECLARE_PUBLIC( Class ) \
53 inline Class * q_func() \
55 return static_cast< Class * >( q_ptr ); \
57 inline const Class * q_func() const { return static_cast< const Class * >( q_ptr ); } \
60#define ITK_OPENCL_D( Class ) Class ## Pimpl * const d = d_func()
61#define ITK_OPENCL_Q( Class ) Class * const q = q_func()
static T * OpenCLGetPtrHelper(T *ptr)