[khronos-opencl-headers] 44/94: Imported Upstream version 1.2-2012.11.30
Andreas Beckmann
anbe at moszumanska.debian.org
Mon Sep 21 02:39:05 UTC 2015
This is an automated email from the git hooks/post-receive script.
anbe pushed a commit to branch master
in repository khronos-opencl-headers.
commit 301484176fb726f4d257584fd42d8afa6a447f5a
Author: Andreas Beckmann <debian at abeckmann.de>
Date: Fri Dec 7 10:42:50 2012 +0100
Imported Upstream version 1.2-2012.11.30
---
cl.h | 107 +-
cl.hpp | 71812 +++--------------------------------------------
cl_d3d10.h | 2 +-
cl_d3d11.h | 2 +-
cl_dx9_media_sharing.h | 2 +-
cl_ext.h | 48 +-
cl_gl.h | 34 +-
cl_gl_ext.h | 2 +-
cl_platform.h | 79 +-
opencl.h | 2 +-
10 files changed, 4679 insertions(+), 67411 deletions(-)
diff --git a/cl.h b/cl.h
index c61f4ff..203c659 100644
--- a/cl.h
+++ b/cl.h
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 The Khronos Group Inc.
+ * Copyright (c) 2008 - 2012 The Khronos Group Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
@@ -278,6 +278,8 @@ typedef struct _cl_buffer_region {
#define CL_DEVICE_REFERENCE_COUNT 0x1047
#define CL_DEVICE_PREFERRED_INTEROP_USER_SYNC 0x1048
#define CL_DEVICE_PRINTF_BUFFER_SIZE 0x1049
+#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT 0x104A
+#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT 0x104B
/* cl_device_fp_config - bitfield */
#define CL_FP_DENORM (1 << 0)
@@ -366,6 +368,8 @@ typedef struct _cl_buffer_region {
#define CL_Rx 0x10BA
#define CL_RGx 0x10BB
#define CL_RGBx 0x10BC
+#define CL_DEPTH 0x10BD
+#define CL_DEPTH_STENCIL 0x10BE
/* cl_channel_type */
#define CL_SNORM_INT8 0x10D0
@@ -383,6 +387,7 @@ typedef struct _cl_buffer_region {
#define CL_UNSIGNED_INT32 0x10DC
#define CL_HALF_FLOAT 0x10DD
#define CL_FLOAT 0x10DE
+#define CL_UNORM_INT24 0x10DF
/* cl_mem_object_type */
#define CL_MEM_OBJECT_BUFFER 0x10F0
@@ -1147,15 +1152,6 @@ clEnqueueBarrierWithWaitList(cl_command_queue /* command_queue */,
const cl_event * /* event_wait_list */,
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_2;
-extern CL_API_ENTRY cl_int CL_API_CALL
-clSetPrintfCallback(cl_context /* context */,
- void (CL_CALLBACK * /* pfn_notify */)(cl_context /* program */,
- cl_uint /*printf_data_len */,
- char * /* printf_data_ptr */,
- void * /* user_data */),
- void * /* user_data */) CL_API_SUFFIX__VERSION_1_2;
-
-
/* Extension function access
*
@@ -1168,68 +1164,47 @@ extern CL_API_ENTRY void * CL_API_CALL
clGetExtensionFunctionAddressForPlatform(cl_platform_id /* platform */,
const char * /* func_name */) CL_API_SUFFIX__VERSION_1_2;
+
+// Deprecated OpenCL 1.1 APIs
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
+clCreateImage2D(cl_context /* context */,
+ cl_mem_flags /* flags */,
+ const cl_image_format * /* image_format */,
+ size_t /* image_width */,
+ size_t /* image_height */,
+ size_t /* image_row_pitch */,
+ void * /* host_ptr */,
+ cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
-#ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
-#warning CL_USE_DEPRECATED_OPENCL_1_0_APIS is defined. These APIs are unsupported and untested in OpenCL 1.1!
- /*
- * WARNING:
- * This API introduces mutable state into the OpenCL implementation. It has been REMOVED
- * to better facilitate thread safety. The 1.0 API is not thread safe. It is not tested by the
- * OpenCL 1.1 conformance test, and consequently may not work or may not work dependably.
- * It is likely to be non-performant. Use of this API is not advised. Use at your own risk.
- *
- * Software developers previously relying on this API are instructed to set the command queue
- * properties when creating the queue, instead.
- */
- extern CL_API_ENTRY cl_int CL_API_CALL
- clSetCommandQueueProperty(cl_command_queue /* command_queue */,
- cl_command_queue_properties /* properties */,
- cl_bool /* enable */,
- cl_command_queue_properties * /* old_properties */) CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED;
-#endif /* CL_USE_DEPRECATED_OPENCL_1_0_APIS */
-
-
-#ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS
- extern CL_API_ENTRY cl_mem CL_API_CALL
- clCreateImage2D(cl_context /* context */,
- cl_mem_flags /* flags */,
- const cl_image_format * /* image_format */,
- size_t /* image_width */,
- size_t /* image_height */,
- size_t /* image_row_pitch */,
- void * /* host_ptr */,
- cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
-
- extern CL_API_ENTRY cl_mem CL_API_CALL
- clCreateImage3D(cl_context /* context */,
- cl_mem_flags /* flags */,
- const cl_image_format * /* image_format */,
- size_t /* image_width */,
- size_t /* image_height */,
- size_t /* image_depth */,
- size_t /* image_row_pitch */,
- size_t /* image_slice_pitch */,
- void * /* host_ptr */,
- cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
+clCreateImage3D(cl_context /* context */,
+ cl_mem_flags /* flags */,
+ const cl_image_format * /* image_format */,
+ size_t /* image_width */,
+ size_t /* image_height */,
+ size_t /* image_depth */,
+ size_t /* image_row_pitch */,
+ size_t /* image_slice_pitch */,
+ void * /* host_ptr */,
+ cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
- extern CL_API_ENTRY cl_int CL_API_CALL
- clEnqueueMarker(cl_command_queue /* command_queue */,
- cl_event * /* event */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
+clEnqueueMarker(cl_command_queue /* command_queue */,
+ cl_event * /* event */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
- extern CL_API_ENTRY cl_int CL_API_CALL
- clEnqueueWaitForEvents(cl_command_queue /* command_queue */,
- cl_uint /* num_events */,
- const cl_event * /* event_list */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
+clEnqueueWaitForEvents(cl_command_queue /* command_queue */,
+ cl_uint /* num_events */,
+ const cl_event * /* event_list */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
- extern CL_API_ENTRY cl_int CL_API_CALL
- clEnqueueBarrier(cl_command_queue /* command_queue */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
+clEnqueueBarrier(cl_command_queue /* command_queue */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
- extern CL_API_ENTRY cl_int CL_API_CALL
- clUnloadCompiler(void) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL
+clUnloadCompiler(void) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
- extern CL_API_ENTRY void * CL_API_CALL
- clGetExtensionFunctionAddress(const char * /* func_name */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
-#endif /* CL_USE_DEPRECATED_OPENCL_1_2_APIS */
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL
+clGetExtensionFunctionAddress(const char * /* func_name */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
#ifdef __cplusplus
}
diff --git a/cl.hpp b/cl.hpp
index b2c9057..806e736 100644
--- a/cl.hpp
+++ b/cl.hpp
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008-2011 The Khronos Group Inc.
+ * Copyright (c) 2008-2012 The Khronos Group Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
@@ -23,13 +23,17 @@
/*! \file
*
- * \brief C++ bindings for OpenCL 1.0 (rev 48) and OpenCL 1.1 (rev 33)
- * \author Benedict R. Gaster and Laurent Morichetti
+ * \brief C++ bindings for OpenCL 1.0 (rev 48), OpenCL 1.1 (rev 33) and
+ * OpenCL 1.2 (rev 15)
+ * \author Benedict R. Gaster, Laurent Morichetti and Lee Howes
*
- * Additions and fixes from Brian Cole, March 3rd 2010.
+ * Additions and fixes from:
+ * Brian Cole, March 3rd 2010 and April 2012
+ * Lee Howes, October 2011, March 2012
+ * Matt Gruenke, April 2012.
*
- * \version 1.1
- * \date June 2010
+ * \version 1.2.1
+ * \date September 2012
*
* Optional extension support
*
@@ -141,12 +145,21 @@
#define CL_HPP_
#ifdef _WIN32
+
#include <windows.h>
#include <malloc.h>
+#include <iterator>
+#include <intrin.h>
+
+#if defined(__CL_ENABLE_EXCEPTIONS)
+#include <exception>
+#endif // #if defined(__CL_ENABLE_EXCEPTIONS)
+
#pragma push_macro("max")
#undef max
#if defined(USE_DX_INTEROP)
#include <CL/cl_d3d10.h>
+#include <CL/cl_dx9_media_sharing.h>
#endif
#endif // _WIN32
@@ -155,6 +168,12 @@
#include <CL/cl_ext.h>
#endif
+// TODO: Remove once declaration is moved elsewhere
+//#if !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS)
+//#define CL_USE_DEPRECATED_OPENCL_1_1_APIS
+//#endif // #if !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS)
+
+
#if defined(__APPLE__) || defined(__MACOSX)
#include <OpenGL/OpenGL.h>
#include <OpenCL/opencl.h>
@@ -164,6 +183,24 @@
#include <CL/opencl.h>
#endif // !__APPLE__
+// To avoid accidentally taking ownership of core OpenCL types
+// such as cl_kernel constructors are made explicit
+// under OpenCL 1.2
+#if defined(CL_VERSION_1_2) && !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS)
+#define __CL_EXPLICIT_CONSTRUCTORS explicit
+#else // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS)
+#define __CL_EXPLICIT_CONSTRUCTORS
+#endif // #if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS)
+
+// Define deprecated prefixes and suffixes to ensure compilation
+// in case they are not pre-defined
+#if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED)
+#define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
+#endif // #if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED)
+#if !defined(CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED)
+#define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
+#endif // #if !defined(CL_EXT_PREFIX__VERSION_1_1_DEPRECATED)
+
#if !defined(CL_CALLBACK)
#define CL_CALLBACK
#endif //CL_CALLBACK
@@ -180,16 +217,14 @@
#endif
#if defined(linux) || defined(__APPLE__) || defined(__MACOSX)
-# include <alloca.h>
+#include <alloca.h>
+
+#include <emmintrin.h>
+#include <xmmintrin.h>
#endif // linux
#include <cstring>
-#if defined(_WIN32)
-#include <functional>
-#else
-#include <tr1/functional>
-#endif
/*! \namespace cl
*
@@ -198,6 +233,12 @@
*/
namespace cl {
+class Memory;
+
+/**
+ * Deprecated APIs for 1.2
+ */
+#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2))
#define __INIT_CL_EXT_FCN_PTR(name) \
if(!pfn_##name) { \
pfn_##name = (PFN_##name) \
@@ -205,6 +246,17 @@ namespace cl {
if(!pfn_##name) { \
} \
}
+#endif // #if defined(CL_VERSION_1_1)
+
+#if defined(CL_VERSION_1_2)
+#define __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, name) \
+ if(!pfn_##name) { \
+ pfn_##name = (PFN_##name) \
+ clGetExtensionFunctionAddressForPlatform(platform, #name); \
+ if(!pfn_##name) { \
+ } \
+ }
+#endif // #if defined(CL_VERSION_1_1)
class Program;
class Device;
@@ -213,9 +265,9 @@ class CommandQueue;
class Memory;
#if defined(__CL_ENABLE_EXCEPTIONS)
-#include <exception>
-/*! \class Error
- * \brief Exception class
+/*! \brief Exception class
+ *
+ * This may be thrown by API functions when __CL_ENABLE_EXCEPTIONS is defined.
*/
class Error : public std::exception
{
@@ -223,8 +275,14 @@ private:
cl_int err_;
const char * errStr_;
public:
- /*! Create a new CL error exception for a given error code
+ /*! \brief Create a new CL error exception for a given error code
* and corresponding message.
+ *
+ * \param err error code value.
+ *
+ * \param errStr a descriptive string that must remain in scope until
+ * handling of the exception has concluded. If set, it
+ * will be returned by what().
*/
Error(cl_int err, const char * errStr = NULL) : err_(err), errStr_(errStr)
{}
@@ -257,6 +315,30 @@ public:
#define __ERR_STR(x) NULL
#endif // __CL_ENABLE_EXCEPTIONS
+
+namespace detail
+{
+#if defined(__CL_ENABLE_EXCEPTIONS)
+static inline cl_int errHandler (
+ cl_int err,
+ const char * errStr = NULL)
+{
+ if (err != CL_SUCCESS) {
+ throw Error(err, errStr);
+ }
+ return err;
+}
+#else
+static inline cl_int errHandler (cl_int err, const char * errStr = NULL)
+{
+ (void) errStr; // suppress unused variable warning
+ return err;
+}
+#endif // __CL_ENABLE_EXCEPTIONS
+}
+
+
+
//! \cond DOXYGEN_DETAIL
#if !defined(__CL_USER_OVERRIDE_ERROR_STRINGS)
#define __GET_DEVICE_INFO_ERR __ERR_STR(clGetDeviceInfo)
@@ -270,6 +352,9 @@ public:
#define __GET_IMAGE_INFO_ERR __ERR_STR(clGetImageInfo)
#define __GET_SAMPLER_INFO_ERR __ERR_STR(clGetSamplerInfo)
#define __GET_KERNEL_INFO_ERR __ERR_STR(clGetKernelInfo)
+#if defined(CL_VERSION_1_2)
+#define __GET_KERNEL_ARG_INFO_ERR __ERR_STR(clGetKernelArgInfo)
+#endif // #if defined(CL_VERSION_1_2)
#define __GET_KERNEL_WORK_GROUP_INFO_ERR __ERR_STR(clGetKernelWorkGroupInfo)
#define __GET_PROGRAM_INFO_ERR __ERR_STR(clGetProgramInfo)
#define __GET_PROGRAM_BUILD_INFO_ERR __ERR_STR(clGetProgramBuildInfo)
@@ -280,14 +365,16 @@ public:
#define __GET_SUPPORTED_IMAGE_FORMATS_ERR __ERR_STR(clGetSupportedImageFormats)
#define __CREATE_BUFFER_ERR __ERR_STR(clCreateBuffer)
+#define __COPY_ERR __ERR_STR(cl::copy)
#define __CREATE_SUBBUFFER_ERR __ERR_STR(clCreateSubBuffer)
#define __CREATE_GL_BUFFER_ERR __ERR_STR(clCreateFromGLBuffer)
#define __CREATE_GL_RENDER_BUFFER_ERR __ERR_STR(clCreateFromGLBuffer)
-#define __CREATE_GL_TEXTURE_2D_ERR __ERR_STR(clCreateFromGLTexture2D)
-#define __CREATE_GL_TEXTURE_3D_ERR __ERR_STR(clCreateFromGLTexture3D)
#define __GET_GL_OBJECT_INFO_ERR __ERR_STR(clGetGLObjectInfo)
-#define __CREATE_IMAGE2D_ERR __ERR_STR(clCreateImage2D)
-#define __CREATE_IMAGE3D_ERR __ERR_STR(clCreateImage3D)
+#if defined(CL_VERSION_1_2)
+#define __CREATE_IMAGE_ERR __ERR_STR(clCreateImage)
+#define __CREATE_GL_TEXTURE_ERR __ERR_STR(clCreateFromGLTexture)
+#define __IMAGE_DIMENSION_ERR __ERR_STR(Incorrect image dimensions)
+#endif // #if defined(CL_VERSION_1_2)
#define __CREATE_SAMPLER_ERR __ERR_STR(clCreateSampler)
#define __SET_MEM_OBJECT_DESTRUCTOR_CALLBACK_ERR __ERR_STR(clSetMemObjectDestructorCallback)
@@ -300,7 +387,14 @@ public:
#define __SET_KERNEL_ARGS_ERR __ERR_STR(clSetKernelArg)
#define __CREATE_PROGRAM_WITH_SOURCE_ERR __ERR_STR(clCreateProgramWithSource)
#define __CREATE_PROGRAM_WITH_BINARY_ERR __ERR_STR(clCreateProgramWithBinary)
+#if defined(CL_VERSION_1_2)
+#define __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR __ERR_STR(clCreateProgramWithBuiltInKernels)
+#endif // #if defined(CL_VERSION_1_2)
#define __BUILD_PROGRAM_ERR __ERR_STR(clBuildProgram)
+#if defined(CL_VERSION_1_2)
+#define __COMPILE_PROGRAM_ERR __ERR_STR(clCompileProgram)
+#define __SET_PRINTF_CALLBACK_ERR __ERR_STR(clSetPrintfCallback)
+#endif // #if defined(CL_VERSION_1_2)
#define __CREATE_KERNELS_IN_PROGRAM_ERR __ERR_STR(clCreateKernelsInProgram)
#define __CREATE_COMMAND_QUEUE_ERR __ERR_STR(clCreateCommandQueue)
@@ -311,9 +405,11 @@ public:
#define __ENQUEUE_WRITE_BUFFER_RECT_ERR __ERR_STR(clEnqueueWriteBufferRect)
#define __ENQEUE_COPY_BUFFER_ERR __ERR_STR(clEnqueueCopyBuffer)
#define __ENQEUE_COPY_BUFFER_RECT_ERR __ERR_STR(clEnqueueCopyBufferRect)
+#define __ENQUEUE_FILL_BUFFER_ERR __ERR_STR(clEnqueueFillBuffer)
#define __ENQUEUE_READ_IMAGE_ERR __ERR_STR(clEnqueueReadImage)
#define __ENQUEUE_WRITE_IMAGE_ERR __ERR_STR(clEnqueueWriteImage)
#define __ENQUEUE_COPY_IMAGE_ERR __ERR_STR(clEnqueueCopyImage)
+#define __ENQUEUE_FILL_IMAGE_ERR __ERR_STR(clEnqueueFillImage)
#define __ENQUEUE_COPY_IMAGE_TO_BUFFER_ERR __ERR_STR(clEnqueueCopyImageToBuffer)
#define __ENQUEUE_COPY_BUFFER_TO_IMAGE_ERR __ERR_STR(clEnqueueCopyBufferToImage)
#define __ENQUEUE_MAP_BUFFER_ERR __ERR_STR(clEnqueueMapBuffer)
@@ -322,76 +418,186 @@ public:
#define __ENQUEUE_NDRANGE_KERNEL_ERR __ERR_STR(clEnqueueNDRangeKernel)
#define __ENQUEUE_TASK_ERR __ERR_STR(clEnqueueTask)
#define __ENQUEUE_NATIVE_KERNEL __ERR_STR(clEnqueueNativeKernel)
-#define __ENQUEUE_MARKER_ERR __ERR_STR(clEnqueueMarker)
-#define __ENQUEUE_WAIT_FOR_EVENTS_ERR __ERR_STR(clEnqueueWaitForEvents)
-#define __ENQUEUE_BARRIER_ERR __ERR_STR(clEnqueueBarrier)
+#if defined(CL_VERSION_1_2)
+#define __ENQUEUE_MIGRATE_MEM_OBJECTS_ERR __ERR_STR(clEnqueueMigrateMemObjects)
+#endif // #if defined(CL_VERSION_1_2)
#define __ENQUEUE_ACQUIRE_GL_ERR __ERR_STR(clEnqueueAcquireGLObjects)
#define __ENQUEUE_RELEASE_GL_ERR __ERR_STR(clEnqueueReleaseGLObjects)
-#define __UNLOAD_COMPILER_ERR __ERR_STR(clUnloadCompiler)
+#define __RETAIN_ERR __ERR_STR(Retain Object)
+#define __RELEASE_ERR __ERR_STR(Release Object)
#define __FLUSH_ERR __ERR_STR(clFlush)
#define __FINISH_ERR __ERR_STR(clFinish)
+#define __VECTOR_CAPACITY_ERR __ERR_STR(Vector capacity error)
+/**
+ * CL 1.1 version that uses device fission.
+ */
+#if defined(CL_VERSION_1_2)
+#define __CREATE_SUB_DEVICES __ERR_STR(clCreateSubDevices)
+#else
#define __CREATE_SUB_DEVICES __ERR_STR(clCreateSubDevicesEXT)
+#endif // #if defined(CL_VERSION_1_2)
+
+/**
+ * Deprecated APIs for 1.2
+ */
+#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2))
+#define __ENQUEUE_MARKER_ERR __ERR_STR(clEnqueueMarker)
+#define __ENQUEUE_WAIT_FOR_EVENTS_ERR __ERR_STR(clEnqueueWaitForEvents)
+#define __ENQUEUE_BARRIER_ERR __ERR_STR(clEnqueueBarrier)
+#define __UNLOAD_COMPILER_ERR __ERR_STR(clUnloadCompiler)
+#define __CREATE_GL_TEXTURE_2D_ERR __ERR_STR(clCreateFromGLTexture2D)
+#define __CREATE_GL_TEXTURE_3D_ERR __ERR_STR(clCreateFromGLTexture3D)
+#define __CREATE_IMAGE2D_ERR __ERR_STR(clCreateImage2D)
+#define __CREATE_IMAGE3D_ERR __ERR_STR(clCreateImage3D)
+#endif // #if defined(CL_VERSION_1_1)
+
#endif // __CL_USER_OVERRIDE_ERROR_STRINGS
//! \endcond
+
+#if !defined(__USE_DEV_STRING) && !defined(__NO_STD_STRING)
+typedef std::string STRING_CLASS;
+#elif !defined(__USE_DEV_STRING)
+
/*! \class string
* \brief Simple string class, that provides a limited subset of std::string
* functionality but avoids many of the issues that come with that class.
+
+ * \note Deprecated. Please use std::string as default or
+ * re-define the string class to match the std::string
+ * interface by defining STRING_CLASS
*/
-class string
+class CL_EXT_PREFIX__VERSION_1_1_DEPRECATED string CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
{
private:
::size_t size_;
char * str_;
public:
+ //! \brief Constructs an empty string, allocating no memory.
string(void) : size_(0), str_(NULL)
{
}
- string(char * str, ::size_t size) :
+ /*! \brief Constructs a string populated from an arbitrary value of
+ * specified size.
+ *
+ * An extra '\0' is added, in case none was contained in str.
+ *
+ * \param str the initial value of the string instance. Note that '\0'
+ * characters receive no special treatment. If NULL,
+ * the string is left empty, with a size of 0.
+ *
+ * \param size the number of characters to copy from str.
+ */
+ string(const char * str, ::size_t size) :
size_(size),
str_(NULL)
{
- str_ = new char[size_+1];
- if (str_ != NULL) {
- memcpy(str_, str, size_ * sizeof(char));
- str_[size_] = '\0';
- }
- else {
- size_ = 0;
+ if( size > 0 ) {
+ str_ = new char[size_+1];
+ if (str_ != NULL) {
+ memcpy(str_, str, size_ * sizeof(char));
+ str_[size_] = '\0';
+ }
+ else {
+ size_ = 0;
+ }
}
}
- string(char * str) :
+ /*! \brief Constructs a string populated from a null-terminated value.
+ *
+ * \param str the null-terminated initial value of the string instance.
+ * If NULL, the string is left empty, with a size of 0.
+ */
+ string(const char * str) :
+ size_(0),
str_(NULL)
{
- size_= ::strlen(str);
- str_ = new char[size_ + 1];
- if (str_ != NULL) {
- memcpy(str_, str, (size_ + 1) * sizeof(char));
+ if( str ) {
+ size_= ::strlen(str);
}
- else {
+ if( size_ > 0 ) {
+ str_ = new char[size_ + 1];
+ if (str_ != NULL) {
+ memcpy(str_, str, (size_ + 1) * sizeof(char));
+ }
+ }
+ }
+
+ void resize( ::size_t n )
+ {
+ if( size_ == n ) {
+ return;
+ }
+ if (n == 0) {
+ if( str_ ) {
+ delete [] str_;
+ }
+ str_ = NULL;
size_ = 0;
+ }
+ else {
+ char *newString = new char[n + 1];
+ int copySize = n;
+ if( size_ < n ) {
+ copySize = size_;
+ }
+ size_ = n;
+
+ if(str_) {
+ memcpy(newString, str_, (copySize + 1) * sizeof(char));
+ }
+ if( copySize < size_ ) {
+ memset(newString + copySize, 0, size_ - copySize);
+ }
+ newString[size_] = '\0';
+
+ delete [] str_;
+ str_ = newString;
}
}
+ const char& operator[] ( ::size_t pos ) const
+ {
+ return str_[pos];
+ }
+
+ char& operator[] ( ::size_t pos )
+ {
+ return str_[pos];
+ }
+
+ /*! \brief Copies the value of another string to this one.
+ *
+ * \param rhs the string to copy.
+ *
+ * \returns a reference to the modified instance.
+ */
string& operator=(const string& rhs)
{
if (this == &rhs) {
return *this;
}
+ if( str_ != NULL ) {
+ delete [] str_;
+ str_ = NULL;
+ size_ = 0;
+ }
+
if (rhs.size_ == 0 || rhs.str_ == NULL) {
+ str_ = NULL;
size_ = 0;
- str_ = NULL;
}
else {
+ str_ = new char[rhs.size_ + 1];
size_ = rhs.size_;
- str_ = new char[size_ + 1];
+
if (str_ != NULL) {
memcpy(str_, rhs.str_, (size_ + 1) * sizeof(char));
}
@@ -403,37 +609,44 @@ public:
return *this;
}
- string(const string& rhs)
+ /*! \brief Constructs a string by copying the value of another instance.
+ *
+ * \param rhs the string to copy.
+ */
+ string(const string& rhs) :
+ size_(0),
+ str_(NULL)
{
*this = rhs;
}
+ //! \brief Destructor - frees memory used to hold the current value.
~string()
{
if (str_ != NULL) {
delete[] str_;
+ str_ = NULL;
}
}
-
+
+ //! \brief Queries the length of the string, excluding any added '\0's.
::size_t size(void) const { return size_; }
+
+ //! \brief Queries the length of the string, excluding any added '\0's.
::size_t length(void) const { return size(); }
+ /*! \brief Returns a pointer to the private copy held by this instance,
+ * or "" if empty/unset.
+ */
const char * c_str(void) const { return (str_) ? str_ : "";}
};
-
-#if !defined(__USE_DEV_STRING) && !defined(__NO_STD_STRING)
-#include <string>
-typedef std::string STRING_CLASS;
-#elif !defined(__USE_DEV_STRING)
typedef cl::string STRING_CLASS;
-#endif
+#endif // #elif !defined(__USE_DEV_STRING)
#if !defined(__USE_DEV_VECTOR) && !defined(__NO_STD_VECTOR)
-#include <vector>
#define VECTOR_CLASS std::vector
#elif !defined(__USE_DEV_VECTOR)
#define VECTOR_CLASS cl::vector
-#endif
#if !defined(__MAX_DEFAULT_VECTOR_SIZE)
#define __MAX_DEFAULT_VECTOR_SIZE 10
@@ -441,189 +654,279 @@ typedef cl::string STRING_CLASS;
/*! \class vector
* \brief Fixed sized vector implementation that mirroring
+ *
+ * \note Deprecated. Please use std::vector as default or
+ * re-define the vector class to match the std::vector
+ * interface by defining VECTOR_CLASS
+
+ * \note Not recommended for use with custom objects as
+ * current implementation will construct N elements
+ *
* std::vector functionality.
+ * \brief Fixed sized vector compatible with std::vector.
+ *
+ * \note
+ * This differs from std::vector<> not just in memory allocation,
+ * but also in terms of when members are constructed, destroyed,
+ * and assigned instead of being copy constructed.
+ *
+ * \param T type of element contained in the vector.
+ *
+ * \param N maximum size of the vector.
*/
template <typename T, unsigned int N = __MAX_DEFAULT_VECTOR_SIZE>
-class vector
+class CL_EXT_PREFIX__VERSION_1_1_DEPRECATED vector CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
{
private:
T data_[N];
unsigned int size_;
- bool empty_;
+
public:
- vector() :
- size_(static_cast<unsigned int>(-1)),
- empty_(true)
+ //! \brief Constructs an empty vector with no memory allocated.
+ vector() :
+ size_(static_cast<unsigned int>(0))
{}
- ~vector() {}
+ //! \brief Deallocates the vector's memory and destroys all of its elements.
+ ~vector()
+ {
+ clear();
+ }
+ //! \brief Returns the number of elements currently contained.
unsigned int size(void) const
{
- return size_ + 1;
+ return size_;
}
-
+
+ /*! \brief Empties the vector of all elements.
+ * \note
+ * This does not deallocate memory but will invoke destructors
+ * on contained elements.
+ */
void clear()
{
- size_ = -1;
- empty_ = true;
+ while(!empty()) {
+ pop_back();
+ }
}
+ /*! \brief Appends an element after the last valid element.
+ * Calling this on a vector that has reached capacity will throw an
+ * exception if exceptions are enabled.
+ */
void push_back (const T& x)
{
- if (size() < N) {
- size_++;
- data_[size_] = x;
- empty_ = false;
+ if (size() < N) {
+ new (&data_[size_]) T(x);
+ size_++;
+ } else {
+ detail::errHandler(CL_MEM_OBJECT_ALLOCATION_FAILURE, __VECTOR_CAPACITY_ERR);
}
}
+ /*! \brief Removes the last valid element from the vector.
+ * Calling this on an empty vector will throw an exception
+ * if exceptions are enabled.
+ */
void pop_back(void)
{
- if (!empty_) {
+ if (size_ != 0) {
+ --size_;
data_[size_].~T();
- size_--;
- if (size_ == -1) {
- empty_ = true;
- }
+ } else {
+ detail::errHandler(CL_MEM_OBJECT_ALLOCATION_FAILURE, __VECTOR_CAPACITY_ERR);
}
}
+ /*! \brief Constructs with a value copied from another.
+ *
+ * \param vec the vector to copy.
+ */
vector(const vector<T, N>& vec) :
- size_(vec.size_),
- empty_(vec.empty_)
+ size_(vec.size_)
{
- if (!empty_) {
- memcpy(&data_[0], &vec.data_[0], size() * sizeof(T));
+ if (size_ != 0) {
+ assign(vec.begin(), vec.end());
}
}
+ /*! \brief Constructs with a specified number of initial elements.
+ *
+ * \param size number of initial elements.
+ *
+ * \param val value of initial elements.
+ */
vector(unsigned int size, const T& val = T()) :
- size_(-1),
- empty_(true)
+ size_(0)
{
for (unsigned int i = 0; i < size; i++) {
push_back(val);
}
}
+ /*! \brief Overwrites the current content with that copied from another
+ * instance.
+ *
+ * \param rhs vector to copy.
+ *
+ * \returns a reference to this.
+ */
vector<T, N>& operator=(const vector<T, N>& rhs)
{
if (this == &rhs) {
return *this;
}
- size_ = rhs.size_;
- empty_ = rhs.empty_;
-
- if (!empty_) {
- memcpy(&data_[0], &rhs.data_[0], size() * sizeof(T));
+ if (rhs.size_ != 0) {
+ assign(rhs.begin(), rhs.end());
+ } else {
+ clear();
}
return *this;
}
+ /*! \brief Tests equality against another instance.
+ *
+ * \param vec the vector against which to compare.
+ */
bool operator==(vector<T,N> &vec)
{
- if (empty_ && vec.empty_) {
- return true;
- }
-
if (size() != vec.size()) {
return false;
}
- return memcmp(&data_[0], &vec.data_[0], size() * sizeof(T)) == 0 ? true : false;
+ for( unsigned int i = 0; i < size(); ++i ) {
+ if( operator[](i) != vec[i] ) {
+ return false;
+ }
+ }
+ return true;
}
+ //! \brief Conversion operator to T*.
operator T* () { return data_; }
+
+ //! \brief Conversion operator to const T*.
operator const T* () const { return data_; }
+ //! \brief Tests whether this instance has any elements.
bool empty (void) const
{
- return empty_;
+ return size_==0;
}
+ //! \brief Returns the maximum number of elements this instance can hold.
unsigned int max_size (void) const
{
return N;
}
+ //! \brief Returns the maximum number of elements this instance can hold.
unsigned int capacity () const
- {
- return sizeof(T) * N;
+ {
+ return N;
}
+ /*! \brief Returns a reference to a given element.
+ *
+ * \param index which element to access. *
+ * \note
+ * The caller is responsible for ensuring index is >= 0 and < size().
+ */
T& operator[](int index)
{
return data_[index];
}
- T operator[](int index) const
+ /*! \brief Returns a const reference to a given element.
+ *
+ * \param index which element to access.
+ *
+ * \note
+ * The caller is responsible for ensuring index is >= 0 and < size().
+ */
+ const T& operator[](int index) const
{
return data_[index];
}
+ /*! \brief Assigns elements of the vector based on a source iterator range.
+ *
+ * \param start Beginning iterator of source range
+ * \param end Enditerator of source range
+ *
+ * \note
+ * Will throw an exception if exceptions are enabled and size exceeded.
+ */
template<class I>
void assign(I start, I end)
{
clear();
- while(start < end) {
+ while(start != end) {
push_back(*start);
start++;
}
}
/*! \class iterator
- * \brief Iterator class for vectors
+ * \brief Const iterator class for vectors
*/
class iterator
{
private:
- vector<T,N> vec_;
+ const vector<T,N> *vec_;
int index_;
- bool initialized_;
+
+ /**
+ * Internal iterator constructor to capture reference
+ * to the vector it iterates over rather than taking
+ * the vector by copy.
+ */
+ iterator (const vector<T,N> &vec, int index) :
+ vec_(&vec)
+ {
+ if( !vec.empty() ) {
+ index_ = index;
+ } else {
+ index_ = -1;
+ }
+ }
+
public:
iterator(void) :
index_(-1),
- initialized_(false)
+ vec_(NULL)
+ {
+ }
+
+ iterator(const iterator& rhs) :
+ vec_(rhs.vec_),
+ index_(rhs.index_)
{
- index_ = -1;
- initialized_ = false;
}
~iterator(void) {}
- static iterator begin(vector<T,N> &vec)
+ static iterator begin(const cl::vector<T,N> &vec)
{
- iterator i;
-
- if (!vec.empty()) {
- i.index_ = 0;
- }
+ iterator i(vec, 0);
- i.vec_ = vec;
- i.initialized_ = true;
return i;
}
- static iterator end(vector<T,N> &vec)
+ static iterator end(const cl::vector<T,N> &vec)
{
- iterator i;
+ iterator i(vec, vec.size());
- if (!vec.empty()) {
- i.index_ = vec.size();
- }
- i.vec_ = vec;
- i.initialized_ = true;
return i;
}
bool operator==(iterator i)
{
return ((vec_ == i.vec_) &&
- (index_ == i.index_) &&
- (initialized_ == i.initialized_));
+ (index_ == i.index_));
}
bool operator!=(iterator i)
@@ -631,29 +934,35 @@ public:
return (!(*this==i));
}
- void operator++()
+ iterator& operator++()
{
- index_++;
+ ++index_;
+ return *this;
}
- void operator++(int x)
+ iterator operator++(int)
{
- index_ += x;
+ iterator retVal(*this);
+ ++index_;
+ return retVal;
}
- void operator--()
+ iterator& operator--()
{
- index_--;
+ --index_;
+ return *this;
}
- void operator--(int x)
+ iterator operator--(int)
{
- index_ -= x;
+ iterator retVal(*this);
+ --index_;
+ return retVal;
}
- T operator *()
+ const T& operator *() const
{
- return vec_[index_];
+ return (*vec_)[index_];
}
};
@@ -662,11 +971,21 @@ public:
return iterator::begin(*this);
}
+ iterator begin(void) const
+ {
+ return iterator::begin(*this);
+ }
+
iterator end(void)
{
return iterator::end(*this);
}
+ iterator end(void) const
+ {
+ return iterator::end(*this);
+ }
+
T& front(void)
{
return data_[0];
@@ -684,12 +1003,17 @@ public:
const T& back(void) const
{
- return data_[size_];
+ return data_[size_-1];
}
};
+#endif // #if !defined(__USE_DEV_VECTOR) && !defined(__NO_STD_VECTOR)
+
+
+
+
namespace detail {
-#define __DEFAULT_NOT_INITIALIZED 1
+#define __DEFAULT_NOT_INITIALIZED 1
#define __DEFAULT_BEING_INITIALIZED 2
#define __DEFAULT_INITIALIZED 4
@@ -712,16 +1036,46 @@ namespace detail {
exchange));
#endif // !_WIN32
}
+
+ inline void fence() { _mm_mfence(); }
}; // namespace detail
-/*!
- * \brief size_t class used to interface between C++ and
- * OpenCL C calls that require arrays of size_t values, who's
- * size is known statically.
+/*! \brief class used to interface between C++ and
+ * OpenCL C calls that require arrays of size_t values, whose
+ * size is known statically.
*/
template <int N>
-struct size_t : public cl::vector< ::size_t, N> { };
+class size_t
+{
+private:
+ ::size_t data_[N];
+
+public:
+ //! \brief Initialize size_t to all 0s
+ size_t()
+ {
+ for( int i = 0; i < N; ++i ) {
+ data_[i] = 0;
+ }
+ }
+
+ ::size_t& operator[](int index)
+ {
+ return data_[index];
+ }
+
+ const ::size_t& operator[](int index) const
+ {
+ return data_[index];
+ }
+
+ //! \brief Conversion operator to T*.
+ operator ::size_t* () { return data_; }
+
+ //! \brief Conversion operator to const T*.
+ operator const ::size_t* () const { return data_; }
+};
namespace detail {
@@ -759,6 +1113,28 @@ struct GetInfoHelper<Func, VECTOR_CLASS<T> >
}
};
+template <typename Func>
+struct GetInfoHelper<Func, VECTOR_CLASS<cl::Device> >
+{
+ static cl_int get(Func f, cl_uint name, VECTOR_CLASS<cl::Device>* param)
+ {
+ ::size_t required;
+ cl_int err = f(name, 0, NULL, &required);
+ if (err != CL_SUCCESS) {
+ return err;
+ }
+
+ cl_device_id* value = (cl_device_id*) alloca(required);
+ err = f(name, required, value, NULL);
+ if (err != CL_SUCCESS) {
+ return err;
+ }
+
+ param->assign(&value[0], &value[required/sizeof(cl_device_id)]);
+ return CL_SUCCESS;
+ }
+};
+
// Specialized for getInfo<CL_PROGRAM_BINARIES>
template <typename Func>
struct GetInfoHelper<Func, VECTOR_CLASS<char *> >
@@ -766,39 +1142,12 @@ struct GetInfoHelper<Func, VECTOR_CLASS<char *> >
static cl_int
get(Func f, cl_uint name, VECTOR_CLASS<char *>* param)
{
- ::size_t nDevices;
- ::size_t * binary_sizes;
- char ** values;
+ cl_uint err = f(name, param->size() * sizeof(char *), &(*param)[0], NULL);
- cl_int err = f(CL_PROGRAM_NUM_DEVICES, sizeof(nDevices), &nDevices, NULL);
- if (err != CL_SUCCESS) {
- return err;
- }
-
- binary_sizes = (::size_t*)alloca(sizeof(::size_t)*nDevices);
- err = f(CL_PROGRAM_BINARY_SIZES, sizeof(::size_t)*nDevices, binary_sizes, NULL);
- if (err != CL_SUCCESS) {
- return err;
- }
-
- values = (char **) alloca(sizeof(char*)*nDevices);
- for(cl_uint i = 0; i < nDevices; i++ )
- {
- if( binary_sizes[i] != 0 )
- {
- values[i]= (char *)alloca( sizeof(char)*binary_sizes[i]);
- }
- else
- {
- values[i] = NULL;
- }
- }
- err = f(name, sizeof(char *)*nDevices, values, NULL);
if (err != CL_SUCCESS) {
return err;
}
-
- param->assign(values,values+nDevices);
+
return CL_SUCCESS;
}
};
@@ -844,7 +1193,10 @@ struct GetInfoHelper<Func, size_t<N> >
return err;
}
- param->assign(&value[0], &value[required/sizeof(::size_t)]);
+ for(int i = 0; i < N; ++i) {
+ (*param)[i] = value[i];
+ }
+
return CL_SUCCESS;
}
};
@@ -964,7 +1316,7 @@ struct GetInfoHelper<Func, CPP_TYPE> \
F(cl_program_info, CL_PROGRAM_REFERENCE_COUNT, cl_uint) \
F(cl_program_info, CL_PROGRAM_CONTEXT, cl::Context) \
F(cl_program_info, CL_PROGRAM_NUM_DEVICES, cl_uint) \
- F(cl_program_info, CL_PROGRAM_DEVICES, VECTOR_CLASS<cl_device_id>) \
+ F(cl_program_info, CL_PROGRAM_DEVICES, VECTOR_CLASS<Device>) \
F(cl_program_info, CL_PROGRAM_SOURCE, STRING_CLASS) \
F(cl_program_info, CL_PROGRAM_BINARY_SIZES, VECTOR_CLASS< ::size_t>) \
F(cl_program_info, CL_PROGRAM_BINARIES, VECTOR_CLASS<char *>) \
@@ -1013,6 +1365,30 @@ struct GetInfoHelper<Func, CPP_TYPE> \
F(cl_event_info, CL_EVENT_CONTEXT, cl::Context)
#endif // CL_VERSION_1_1
+
+#if defined(CL_VERSION_1_2)
+#define __PARAM_NAME_INFO_1_2(F) \
+ F(cl_program_info, CL_PROGRAM_NUM_KERNELS, ::size_t) \
+ F(cl_program_info, CL_PROGRAM_KERNEL_NAMES, STRING_CLASS) \
+ \
+ F(cl_program_build_info, CL_PROGRAM_BINARY_TYPE, cl_program_binary_type) \
+ \
+ F(cl_kernel_info, CL_KERNEL_ATTRIBUTES, STRING_CLASS) \
+ \
+ F(cl_kernel_arg_info, CL_KERNEL_ARG_ADDRESS_QUALIFIER, cl_kernel_arg_address_qualifier) \
+ F(cl_kernel_arg_info, CL_KERNEL_ARG_ACCESS_QUALIFIER, cl_kernel_arg_access_qualifier) \
+ F(cl_kernel_arg_info, CL_KERNEL_ARG_TYPE_NAME, STRING_CLASS) \
+ F(cl_kernel_arg_info, CL_KERNEL_ARG_NAME, STRING_CLASS) \
+ \
+ F(cl_device_info, CL_DEVICE_PARENT_DEVICE, cl_device_id) \
+ F(cl_device_info, CL_DEVICE_PARTITION_PROPERTIES, VECTOR_CLASS<cl_device_partition_property>) \
+ F(cl_device_info, CL_DEVICE_PARTITION_TYPE, VECTOR_CLASS<cl_device_partition_property>) \
+ F(cl_device_info, CL_DEVICE_REFERENCE_COUNT, cl_uint) \
+ F(cl_device_info, CL_DEVICE_PREFERRED_INTEROP_USER_SYNC, ::size_t) \
+ F(cl_device_info, CL_DEVICE_PARTITION_AFFINITY_DOMAIN, cl_device_affinity_domain) \
+ F(cl_device_info, CL_DEVICE_BUILT_IN_KERNELS, STRING_CLASS)
+#endif // #if defined(CL_VERSION_1_2)
+
#if defined(USE_CL_DEVICE_FISSION)
#define __PARAM_NAME_DEVICE_FISSION(F) \
F(cl_device_info, CL_DEVICE_PARENT_DEVICE_EXT, cl_device_id) \
@@ -1038,6 +1414,9 @@ __PARAM_NAME_INFO_1_0(__CL_DECLARE_PARAM_TRAITS)
#if defined(CL_VERSION_1_1)
__PARAM_NAME_INFO_1_1(__CL_DECLARE_PARAM_TRAITS)
#endif // CL_VERSION_1_1
+#if defined(CL_VERSION_1_2)
+__PARAM_NAME_INFO_1_2(__CL_DECLARE_PARAM_TRAITS)
+#endif // CL_VERSION_1_1
#if defined(USE_CL_DEVICE_FISSION)
__PARAM_NAME_DEVICE_FISSION(__CL_DECLARE_PARAM_TRAITS);
@@ -1051,13 +1430,44 @@ __CL_DECLARE_PARAM_TRAITS(cl_platform_info, CL_PLATFORM_ICD_SUFFIX_KHR, STRING_C
__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_PROFILING_TIMER_OFFSET_AMD, cl_ulong)
#endif
-#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV
-__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV, cl_uint)
+#ifdef CL_DEVICE_GLOBAL_FREE_MEMORY_AMD
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_FREE_MEMORY_AMD, VECTOR_CLASS< ::size_t>)
#endif
-#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV
-__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV, cl_uint)
+#ifdef CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD, cl_uint)
#endif
-#ifdef CL_DEVICE_REGISTERS_PER_BLOCK_NV
+#ifdef CL_DEVICE_SIMD_WIDTH_AMD
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_SIMD_WIDTH_AMD, cl_uint)
+#endif
+#ifdef CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD, cl_uint)
+#endif
+#ifdef CL_DEVICE_WAVEFRONT_WIDTH_AMD
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_WAVEFRONT_WIDTH_AMD, cl_uint)
+#endif
+#ifdef CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD, cl_uint)
+#endif
+#ifdef CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD, cl_uint)
+#endif
+#ifdef CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD, cl_uint)
+#endif
+#ifdef CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD, cl_uint)
+#endif
+#ifdef CL_DEVICE_LOCAL_MEM_BANKS_AMD
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_LOCAL_MEM_BANKS_AMD, cl_uint)
+#endif
+
+#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV, cl_uint)
+#endif
+#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV
+__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV, cl_uint)
+#endif
+#ifdef CL_DEVICE_REGISTERS_PER_BLOCK_NV
__CL_DECLARE_PARAM_TRAITS(cl_device_info, CL_DEVICE_REGISTERS_PER_BLOCK_NV, cl_uint)
#endif
#ifdef CL_DEVICE_WARP_SIZE_NV
@@ -1122,26 +1532,61 @@ template<typename T>
struct ReferenceHandler
{ };
+#if defined(CL_VERSION_1_2)
+/**
+ * OpenCL 1.2 devices do have retain/release.
+ */
+template <>
+struct ReferenceHandler<cl_device_id>
+{
+ /**
+ * Retain the device.
+ * \param device A valid device created using createSubDevices
+ * \return
+ * CL_SUCCESS if the function executed successfully.
+ * CL_INVALID_DEVICE if device was not a valid subdevice
+ * CL_OUT_OF_RESOURCES
+ * CL_OUT_OF_HOST_MEMORY
+ */
+ static cl_int retain(cl_device_id device)
+ { return ::clRetainDevice(device); }
+ /**
+ * Retain the device.
+ * \param device A valid device created using createSubDevices
+ * \return
+ * CL_SUCCESS if the function executed successfully.
+ * CL_INVALID_DEVICE if device was not a valid subdevice
+ * CL_OUT_OF_RESOURCES
+ * CL_OUT_OF_HOST_MEMORY
+ */
+ static cl_int release(cl_device_id device)
+ { return ::clReleaseDevice(device); }
+};
+#else // #if defined(CL_VERSION_1_2)
+/**
+ * OpenCL 1.1 devices do not have retain/release.
+ */
template <>
struct ReferenceHandler<cl_device_id>
{
// cl_device_id does not have retain().
static cl_int retain(cl_device_id)
- { return CL_INVALID_DEVICE; }
+ { return CL_SUCCESS; }
// cl_device_id does not have release().
static cl_int release(cl_device_id)
- { return CL_INVALID_DEVICE; }
+ { return CL_SUCCESS; }
};
+#endif // #if defined(CL_VERSION_1_2)
template <>
struct ReferenceHandler<cl_platform_id>
{
// cl_platform_id does not have retain().
static cl_int retain(cl_platform_id)
- { return CL_INVALID_PLATFORM; }
+ { return CL_SUCCESS; }
// cl_platform_id does not have release().
static cl_int release(cl_platform_id)
- { return CL_INVALID_PLATFORM; }
+ { return CL_SUCCESS; }
};
template <>
@@ -1229,20 +1674,20 @@ public:
Wrapper(const Wrapper<cl_type>& rhs)
{
object_ = rhs.object_;
- if (object_ != NULL) { retain(); }
+ if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); }
}
Wrapper<cl_type>& operator = (const Wrapper<cl_type>& rhs)
{
- if (object_ != NULL) { release(); }
+ if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); }
object_ = rhs.object_;
- if (object_ != NULL) { retain(); }
+ if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); }
return *this;
}
Wrapper<cl_type>& operator = (const cl_type &rhs)
{
- if (object_ != NULL) { release(); }
+ if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); }
object_ = rhs;
return *this;
}
@@ -1264,39 +1709,138 @@ protected:
}
};
-#if defined(__CL_ENABLE_EXCEPTIONS)
-static inline cl_int errHandler (
- cl_int err,
- const char * errStr = NULL) throw(Error)
+template <>
+class Wrapper<cl_device_id>
{
- if (err != CL_SUCCESS) {
- throw Error(err, errStr);
+public:
+ typedef cl_device_id cl_type;
+
+protected:
+ cl_type object_;
+ bool referenceCountable_;
+
+ static int getVersion(cl_device_id device)
+ {
+ ::size_t size = 0;
+ clGetDeviceInfo(device, CL_DEVICE_VERSION, 0, 0, &size);
+ STRING_CLASS versionInfo;
+ versionInfo.resize(size + 1);
+ clGetDeviceInfo(device, CL_DEVICE_VERSION, size, &versionInfo[0],
+&size);
+ int highVersion = 0;
+ int lowVersion = 0;
+ int index = 7;
+ while(versionInfo[index] != '.' ) {
+ highVersion *= 10;
+ highVersion += versionInfo[index]-'0';
+ ++index;
+ }
+ ++index;
+ while(versionInfo[index] != ' ' ) {
+ lowVersion *= 10;
+ lowVersion += versionInfo[index]-'0';
+ ++index;
+ }
+ return (highVersion << 16) | lowVersion;
}
- return err;
-}
-#else
-static inline cl_int errHandler (cl_int err, const char * errStr = NULL)
-{
- return err;
-}
-#endif // __CL_ENABLE_EXCEPTIONS
+
+ static bool isReferenceCountable(cl_device_id device)
+ {
+ bool retVal = false;
+ int version = getVersion(device);
+ if(version > ((1 << 16) + 1)) {
+ retVal = true;
+ }
+ return retVal;
+ }
+
+public:
+ Wrapper() : object_(NULL), referenceCountable_(false)
+ {
+ }
+
+ Wrapper(const cl_type &obj) : object_(obj), referenceCountable_(false)
+ {
+ referenceCountable_ = isReferenceCountable(obj);
+ }
+
+ ~Wrapper()
+ {
+ if (object_ != NULL) { release(); }
+ }
+
+ Wrapper(const Wrapper<cl_type>& rhs)
+ {
+ object_ = rhs.object_;
+ referenceCountable_ = isReferenceCountable(object_);
+ if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); }
+ }
+
+ Wrapper<cl_type>& operator = (const Wrapper<cl_type>& rhs)
+ {
+ if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); }
+ object_ = rhs.object_;
+ referenceCountable_ = rhs.referenceCountable_;
+ if (object_ != NULL) { detail::errHandler(retain(), __RETAIN_ERR); }
+ return *this;
+ }
+
+ Wrapper<cl_type>& operator = (const cl_type &rhs)
+ {
+ if (object_ != NULL) { detail::errHandler(release(), __RELEASE_ERR); }
+ object_ = rhs;
+ referenceCountable_ = isReferenceCountable(object_);
+ return *this;
+ }
+
+ cl_type operator ()() const { return object_; }
+
+ cl_type& operator ()() { return object_; }
+
+protected:
+
+ cl_int retain() const
+ {
+ if( referenceCountable_ ) {
+ return ReferenceHandler<cl_type>::retain(object_);
+ }
+ else {
+ return CL_SUCCESS;
+ }
+ }
+
+ cl_int release() const
+ {
+ if( referenceCountable_ ) {
+ return ReferenceHandler<cl_type>::release(object_);
+ }
+ else {
+ return CL_SUCCESS;
+ }
+ }
+};
} // namespace detail
//! \endcond
/*! \stuct ImageFormat
- * \brief ImageFormat interface fro cl_image_format.
+ * \brief Adds constructors and member functions for cl_image_format.
+ *
+ * \see cl_image_format
*/
struct ImageFormat : public cl_image_format
{
+ //! \brief Default constructor - performs no initialization.
ImageFormat(){}
+ //! \brief Initializing constructor.
ImageFormat(cl_channel_order order, cl_channel_type type)
{
image_channel_order = order;
image_channel_data_type = type;
}
+ //! \brief Assignment operator.
ImageFormat& operator = (const ImageFormat& rhs)
{
if (this != &rhs) {
@@ -1307,20 +1851,41 @@ struct ImageFormat : public cl_image_format
}
};
-/*! \class Device
- * \brief Device interface for cl_device_id.
+/*! \brief Class interface for cl_device_id.
+ *
+ * \note Copies of these objects are inexpensive, since they don't 'own'
+ * any underlying resources or data structures.
+ *
+ * \see cl_device_id
*/
class Device : public detail::Wrapper<cl_device_id>
{
public:
+ //! \brief Default constructor - initializes to NULL.
Device() : detail::Wrapper<cl_type>() { }
+ /*! \brief Copy constructor.
+ *
+ * This simply copies the device ID value, which is an inexpensive operation.
+ */
Device(const Device& device) : detail::Wrapper<cl_type>(device) { }
+ /*! \brief Constructor from cl_device_id.
+ *
+ * This simply copies the device ID value, which is an inexpensive operation.
+ */
Device(const cl_device_id &device) : detail::Wrapper<cl_type>(device) { }
+ /*! \brief Returns the first device on the default context.
+ *
+ * \see Context::getDefault()
+ */
static Device getDefault(cl_int * err = NULL);
+ /*! \brief Assignment operator from Device.
+ *
+ * This simply copies the device ID value, which is an inexpensive operation.
+ */
Device& operator = (const Device& rhs)
{
if (this != &rhs) {
@@ -1329,12 +1894,17 @@ public:
return *this;
}
+ /*! \brief Assignment operator from cl_device_id.
+ *
+ * This simply copies the device ID value, which is an inexpensive operation.
+ */
Device& operator = (const cl_device_id& rhs)
{
detail::Wrapper<cl_type>::operator=(rhs);
return *this;
}
+ //! \brief Wrapper for clGetDeviceInfo().
template <typename T>
cl_int getInfo(cl_device_info name, T* param) const
{
@@ -1343,6 +1913,7 @@ public:
__GET_DEVICE_INFO_ERR);
}
+ //! \brief Wrapper for clGetDeviceInfo() that returns by value.
template <cl_int name> typename
detail::param_traits<detail::cl_device_info, name>::param_type
getInfo(cl_int* err = NULL) const
@@ -1356,6 +1927,36 @@ public:
return param;
}
+ /**
+ * CL 1.2 version
+ */
+#if defined(CL_VERSION_1_2)
+ //! \brief Wrapper for clCreateSubDevicesEXT().
+ cl_int createSubDevices(
+ const cl_device_partition_property * properties,
+ VECTOR_CLASS<Device>* devices)
+ {
+ cl_uint n = 0;
+ cl_int err = clCreateSubDevices(object_, properties, 0, NULL, &n);
+ if (err != CL_SUCCESS) {
+ return detail::errHandler(err, __CREATE_SUB_DEVICES);
+ }
+
+ cl_device_id* ids = (cl_device_id*) alloca(n * sizeof(cl_device_id));
+ err = clCreateSubDevices(object_, properties, n, ids, NULL);
+ if (err != CL_SUCCESS) {
+ return detail::errHandler(err, __CREATE_SUB_DEVICES);
+ }
+
+ devices->assign(&ids[0], &ids[n]);
+ return CL_SUCCESS;
+ }
+#endif // #if defined(CL_VERSION_1_2)
+
+/**
+ * CL 1.1 version that uses device fission.
+ */
+#if defined(CL_VERSION_1_1)
#if defined(USE_CL_DEVICE_FISSION)
cl_int createSubDevices(
const cl_device_partition_property_ext * properties,
@@ -1387,23 +1988,39 @@ public:
devices->assign(&ids[0], &ids[n]);
return CL_SUCCESS;
}
-#endif
+#endif // #if defined(USE_CL_DEVICE_FISSION)
+#endif // #if defined(CL_VERSION_1_1)
};
-/*! \class Platform
- * \brief Platform interface.
+/*! \brief Class interface for cl_platform_id.
+ *
+ * \note Copies of these objects are inexpensive, since they don't 'own'
+ * any underlying resources or data structures.
+ *
+ * \see cl_platform_id
*/
class Platform : public detail::Wrapper<cl_platform_id>
{
public:
- static const Platform null();
-
+ //! \brief Default constructor - initializes to NULL.
Platform() : detail::Wrapper<cl_type>() { }
+ /*! \brief Copy constructor.
+ *
+ * This simply copies the platform ID value, which is an inexpensive operation.
+ */
Platform(const Platform& platform) : detail::Wrapper<cl_type>(platform) { }
+ /*! \brief Constructor from cl_platform_id.
+ *
+ * This simply copies the platform ID value, which is an inexpensive operation.
+ */
Platform(const cl_platform_id &platform) : detail::Wrapper<cl_type>(platform) { }
+ /*! \brief Assignment operator from Platform.
+ *
+ * This simply copies the platform ID value, which is an inexpensive operation.
+ */
Platform& operator = (const Platform& rhs)
{
if (this != &rhs) {
@@ -1412,12 +2029,17 @@ public:
return *this;
}
+ /*! \brief Assignment operator from cl_platform_id.
+ *
+ * This simply copies the platform ID value, which is an inexpensive operation.
+ */
Platform& operator = (const cl_platform_id& rhs)
{
detail::Wrapper<cl_type>::operator=(rhs);
return *this;
}
+ //! \brief Wrapper for clGetPlatformInfo().
cl_int getInfo(cl_platform_info name, STRING_CLASS* param) const
{
return detail::errHandler(
@@ -1425,6 +2047,7 @@ public:
__GET_PLATFORM_INFO_ERR);
}
+ //! \brief Wrapper for clGetPlatformInfo() that returns by value.
template <cl_int name> typename
detail::param_traits<detail::cl_platform_info, name>::param_type
getInfo(cl_int* err = NULL) const
@@ -1438,11 +2061,18 @@ public:
return param;
}
+ /*! \brief Gets a list of devices for this platform.
+ *
+ * Wraps clGetDeviceIDs().
+ */
cl_int getDevices(
cl_device_type type,
VECTOR_CLASS<Device>* devices) const
{
cl_uint n = 0;
+ if( devices == NULL ) {
+ return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_DEVICE_IDS_ERR);
+ }
cl_int err = ::clGetDeviceIDs(object_, type, 0, NULL, &n);
if (err != CL_SUCCESS) {
return detail::errHandler(err, __GET_DEVICE_IDS_ERR);
@@ -1497,8 +2127,12 @@ public:
cl_device_id * devices,
cl_uint* num_devices);
+ if( devices == NULL ) {
+ return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_DEVICE_IDS_ERR);
+ }
+
static PFN_clGetDeviceIDsFromD3D10KHR pfn_clGetDeviceIDsFromD3D10KHR = NULL;
- __INIT_CL_EXT_FCN_PTR(clGetDeviceIDsFromD3D10KHR);
+ __INIT_CL_EXT_FCN_PTR_PLATFORM(object_, clGetDeviceIDsFromD3D10KHR);
cl_uint n = 0;
cl_int err = pfn_clGetDeviceIDsFromD3D10KHR(
@@ -1531,10 +2165,19 @@ public:
}
#endif
+ /*! \brief Gets a list of available platforms.
+ *
+ * Wraps clGetPlatformIDs().
+ */
static cl_int get(
VECTOR_CLASS<Platform>* platforms)
{
cl_uint n = 0;
+
+ if( platforms == NULL ) {
+ return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_PLATFORM_IDS_ERR);
+ }
+
cl_int err = ::clGetPlatformIDs(0, NULL, &n);
if (err != CL_SUCCESS) {
return detail::errHandler(err, __GET_PLATFORM_IDS_ERR);
@@ -1551,10 +2194,19 @@ public:
return CL_SUCCESS;
}
+ /*! \brief Gets the first available platform.
+ *
+ * Wraps clGetPlatformIDs(), returning the first result.
+ */
static cl_int get(
Platform * platform)
{
cl_uint n = 0;
+
+ if( platform == NULL ) {
+ return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_PLATFORM_IDS_ERR);
+ }
+
cl_int err = ::clGetPlatformIDs(0, NULL, &n);
if (err != CL_SUCCESS) {
return detail::errHandler(err, __GET_PLATFORM_IDS_ERR);
@@ -1571,6 +2223,10 @@ public:
return CL_SUCCESS;
}
+ /*! \brief Gets the first available platform, returning it by value.
+ *
+ * Wraps clGetPlatformIDs(), returning the first result.
+ */
static Platform get(
cl_int * errResult = NULL)
{
@@ -1598,21 +2254,67 @@ public:
return ids[0];
}
-};
-static inline cl_int
+ static Platform getDefault(
+ cl_int *errResult = NULL )
+ {
+ return get(errResult);
+ }
+
+
+#if defined(CL_VERSION_1_2)
+ //! \brief Wrapper for clUnloadCompiler().
+ cl_int
+ unloadCompiler()
+ {
+ return ::clUnloadPlatformCompiler(object_);
+ }
+#endif // #if defined(CL_VERSION_1_2)
+}; // class Platform
+
+/**
+ * Deprecated APIs for 1.2
+ */
+#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2))
+/**
+ * Unload the OpenCL compiler.
+ * \note Deprecated for OpenCL 1.2. Use Platform::unloadCompiler instead.
+ */
+inline CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int
+UnloadCompiler() CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
+inline cl_int
UnloadCompiler()
{
return ::clUnloadCompiler();
}
+#endif // #if defined(CL_VERSION_1_1)
-class Context : public detail::Wrapper<cl_context>
+/*! \brief Class interface for cl_context.
+ *
+ * \note Copies of these objects are shallow, meaning that the copy will refer
+ * to the same underlying cl_context as the original. For details, see
+ * clRetainContext() and clReleaseContext().
+ *
+ * \see cl_context
+ */
+class Context
+ : public detail::Wrapper<cl_context>
{
private:
static volatile int default_initialized_;
static Context default_;
static volatile cl_int default_error_;
public:
+ /*! \brief Destructor.
+ *
+ * This calls clReleaseContext() on the value held by this instance.
+ */
+ ~Context() { }
+
+ /*! \brief Constructs a context including a list of specified devices.
+ *
+ * Wraps clCreateContext().
+ */
Context(
const VECTOR_CLASS<Device>& devices,
cl_context_properties* properties = NULL,
@@ -1637,6 +2339,33 @@ public:
}
Context(
+ const Device& device,
+ cl_context_properties* properties = NULL,
+ void (CL_CALLBACK * notifyFptr)(
+ const char *,
+ const void *,
+ ::size_t,
+ void *) = NULL,
+ void* data = NULL,
+ cl_int* err = NULL)
+ {
+ cl_int error;
+ object_ = ::clCreateContext(
+ properties, 1,
+ (cl_device_id*) &device,
+ notifyFptr, data, &error);
+
+ detail::errHandler(error, __CREATE_CONTEXT_ERR);
+ if (err != NULL) {
+ *err = error;
+ }
+ }
+
+ /*! \brief Constructs a context including all devices of a specified type.
+ *
+ * Wraps clCreateContextFromType().
+ */
+ Context(
cl_device_type type,
cl_context_properties* properties = NULL,
void (CL_CALLBACK * notifyFptr)(
@@ -1673,6 +2402,10 @@ public:
}
}
+ /*! \brief Returns a singleton context including all devices of CL_DEVICE_TYPE_DEFAULT.
+ *
+ * \note All calls to this function return the same cl_context as the first.
+ */
static Context getDefault(cl_int * err = NULL)
{
int state = detail::compare_exchange(
@@ -1689,7 +2422,7 @@ public:
if (state & __DEFAULT_BEING_INITIALIZED) {
// Assume writes will propagate eventually...
while(default_initialized_ != __DEFAULT_INITIALIZED) {
- ;
+ detail::fence();
}
if (err != NULL) {
@@ -1706,9 +2439,14 @@ public:
NULL,
&error);
+ detail::fence();
+
default_error_ = error;
// Assume writes will propagate eventually...
default_initialized_ = __DEFAULT_INITIALIZED;
+
+ detail::fence();
+
if (err != NULL) {
*err = default_error_;
}
@@ -1716,12 +2454,27 @@ public:
}
+ //! \brief Default constructor - initializes to NULL.
Context() : detail::Wrapper<cl_type>() { }
+ /*! \brief Copy constructor.
+ *
+ * This calls clRetainContext() on the parameter's cl_context.
+ */
Context(const Context& context) : detail::Wrapper<cl_type>(context) { }
- Context(const cl_context& context) : detail::Wrapper<cl_type>(context) { }
+ /*! \brief Constructor from cl_context - takes ownership.
+ *
+ * This effectively transfers ownership of a refcount on the cl_context
+ * into the new Context object.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS Context(const cl_context& context) : detail::Wrapper<cl_type>(context) { }
+ /*! \brief Assignment operator from Context.
+ *
+ * This calls clRetainContext() on the parameter and clReleaseContext() on
+ * the previous value held by this instance.
+ */
Context& operator = (const Context& rhs)
{
if (this != &rhs) {
@@ -1730,12 +2483,18 @@ public:
return *this;
}
+ /*! \brief Assignment operator from cl_context - takes ownership.
+ *
+ * This effectively transfers ownership of a refcount on the rhs and calls
+ * clReleaseContext() on the value previously held by this instance.
+ */
Context& operator = (const cl_context& rhs)
{
detail::Wrapper<cl_type>::operator=(rhs);
return *this;
}
+ //! \brief Wrapper for clGetContextInfo().
template <typename T>
cl_int getInfo(cl_context_info name, T* param) const
{
@@ -1744,6 +2503,7 @@ public:
__GET_CONTEXT_INFO_ERR);
}
+ //! \brief Wrapper for clGetContextInfo() that returns by value.
template <cl_int name> typename
detail::param_traits<detail::cl_context_info, name>::param_type
getInfo(cl_int* err = NULL) const
@@ -1757,6 +2517,10 @@ public:
return param;
}
+ /*! \brief Gets a list of supported image formats.
+ *
+ * Wraps clGetSupportedImageFormats().
+ */
cl_int getSupportedImageFormats(
cl_mem_flags flags,
cl_mem_object_type type,
@@ -1790,6 +2554,25 @@ public:
formats->assign(&value[0], &value[numEntries]);
return CL_SUCCESS;
}
+
+
+#if defined(CL_VERSION_1_2)
+ cl_int setPrintfCallback(
+ void (CL_CALLBACK * pfn_notify)(
+ cl_context /* program */,
+ cl_uint /*printf_data_len */,
+ char * /* printf_data_ptr */,
+ void * /* user_data */),
+ void * user_data )
+ {
+ return detail::errHandler(
+ ::clSetPrintfCallback(
+ object_,
+ pfn_notify,
+ user_data),
+ __SET_PRINTF_CALLBACK_ERR);
+ }
+#endif // #if defined(CL_VERSION_1_2)
};
inline Device Device::getDefault(cl_int * err)
@@ -1815,6 +2598,7 @@ inline Device Device::getDefault(cl_int * err)
return device;
}
+
#ifdef _WIN32
__declspec(selectany) volatile int Context::default_initialized_ = __DEFAULT_NOT_INITIALIZED;
__declspec(selectany) Context Context::default_;
@@ -1827,18 +2611,44 @@ __attribute__((weak)) volatile cl_int Context::default_error_ = CL_SUCCESS;
__GET_INFO_HELPER_WITH_RETAIN(cl::Context)
-/*! \class Event
- * \brief Event interface for cl_event.
+/*! \brief Class interface for cl_event.
+ *
+ * \note Copies of these objects are shallow, meaning that the copy will refer
+ * to the same underlying cl_event as the original. For details, see
+ * clRetainEvent() and clReleaseEvent().
+ *
+ * \see cl_event
*/
class Event : public detail::Wrapper<cl_event>
{
public:
+ /*! \brief Destructor.
+ *
+ * This calls clReleaseEvent() on the value held by this instance.
+ */
+ ~Event() { }
+
+ //! \brief Default constructor - initializes to NULL.
Event() : detail::Wrapper<cl_type>() { }
+ /*! \brief Copy constructor.
+ *
+ * This calls clRetainEvent() on the parameter's cl_event.
+ */
Event(const Event& event) : detail::Wrapper<cl_type>(event) { }
+ /*! \brief Constructor from cl_event - takes ownership.
+ *
+ * This effectively transfers ownership of a refcount on the cl_event
+ * into the new Event object.
+ */
Event(const cl_event& event) : detail::Wrapper<cl_type>(event) { }
+ /*! \brief Assignment operator from cl_event - takes ownership.
+ *
+ * This effectively transfers ownership of a refcount on the rhs and calls
+ * clReleaseEvent() on the value previously held by this instance.
+ */
Event& operator = (const Event& rhs)
{
if (this != &rhs) {
@@ -1847,12 +2657,18 @@ public:
return *this;
}
+ /*! \brief Assignment operator from cl_event.
+ *
+ * This calls clRetainEvent() on the parameter and clReleaseEvent() on
+ * the previous value held by this instance.
+ */
Event& operator = (const cl_event& rhs)
{
detail::Wrapper<cl_type>::operator=(rhs);
return *this;
}
+ //! \brief Wrapper for clGetEventInfo().
template <typename T>
cl_int getInfo(cl_event_info name, T* param) const
{
@@ -1861,6 +2677,7 @@ public:
__GET_EVENT_INFO_ERR);
}
+ //! \brief Wrapper for clGetEventInfo() that returns by value.
template <cl_int name> typename
detail::param_traits<detail::cl_event_info, name>::param_type
getInfo(cl_int* err = NULL) const
@@ -1874,6 +2691,7 @@ public:
return param;
}
+ //! \brief Wrapper for clGetEventProfilingInfo().
template <typename T>
cl_int getProfilingInfo(cl_profiling_info name, T* param) const
{
@@ -1882,6 +2700,7 @@ public:
__GET_EVENT_PROFILE_INFO_ERR);
}
+ //! \brief Wrapper for clGetEventProfilingInfo() that returns by value.
template <cl_int name> typename
detail::param_traits<detail::cl_profiling_info, name>::param_type
getProfilingInfo(cl_int* err = NULL) const
@@ -1895,6 +2714,10 @@ public:
return param;
}
+ /*! \brief Blocks the calling thread until this event completes.
+ *
+ * Wraps clWaitForEvents().
+ */
cl_int wait() const
{
return detail::errHandler(
@@ -1903,6 +2726,10 @@ public:
}
#if defined(CL_VERSION_1_1)
+ /*! \brief Registers a user callback function for a specific command execution status.
+ *
+ * Wraps clSetEventCallback().
+ */
cl_int setCallback(
cl_int type,
void (CL_CALLBACK * pfn_notify)(cl_event, cl_int, void *),
@@ -1918,6 +2745,10 @@ public:
}
#endif
+ /*! \brief Blocks the calling thread until every event specified is complete.
+ *
+ * Wraps clWaitForEvents().
+ */
static cl_int
waitForEvents(const VECTOR_CLASS<Event>& events)
{
@@ -1931,12 +2762,17 @@ public:
__GET_INFO_HELPER_WITH_RETAIN(cl::Event)
#if defined(CL_VERSION_1_1)
-/*! \class UserEvent
- * \brief User event interface for cl_event.
+/*! \brief Class interface for user events (a subset of cl_event's).
+ *
+ * See Event for details about copy semantics, etc.
*/
class UserEvent : public Event
{
public:
+ /*! \brief Constructs a user event on a given context.
+ *
+ * Wraps clCreateUserEvent().
+ */
UserEvent(
const Context& context,
cl_int * err = NULL)
@@ -1952,10 +2788,13 @@ public:
}
}
+ //! \brief Default constructor - initializes to NULL.
UserEvent() : Event() { }
+ //! \brief Copy constructor - performs shallow copy.
UserEvent(const UserEvent& event) : Event(event) { }
+ //! \brief Assignment Operator - performs shallow copy.
UserEvent& operator = (const UserEvent& rhs)
{
if (this != &rhs) {
@@ -1964,6 +2803,10 @@ public:
return *this;
}
+ /*! \brief Sets the execution status of a user event object.
+ *
+ * Wraps clSetUserEventStatus().
+ */
cl_int setStatus(cl_int status)
{
return detail::errHandler(
@@ -1973,6 +2816,10 @@ public:
};
#endif
+/*! \brief Blocks the calling thread until every event specified is complete.
+ *
+ * Wraps clWaitForEvents().
+ */
inline static cl_int
WaitForEvents(const VECTOR_CLASS<Event>& events)
{
@@ -1982,18 +2829,45 @@ WaitForEvents(const VECTOR_CLASS<Event>& events)
__WAIT_FOR_EVENTS_ERR);
}
-/*! \class Memory
- * \brief Memory interface for cl_mem.
+/*! \brief Class interface for cl_mem.
+ *
+ * \note Copies of these objects are shallow, meaning that the copy will refer
+ * to the same underlying cl_mem as the original. For details, see
+ * clRetainMemObject() and clReleaseMemObject().
+ *
+ * \see cl_mem
*/
class Memory : public detail::Wrapper<cl_mem>
{
public:
+
+ /*! \brief Destructor.
+ *
+ * This calls clReleaseMemObject() on the value held by this instance.
+ */
+ ~Memory() {}
+
+ //! \brief Default constructor - initializes to NULL.
Memory() : detail::Wrapper<cl_type>() { }
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * This calls clRetainMemObject() on the parameter's cl_mem.
+ */
Memory(const Memory& memory) : detail::Wrapper<cl_type>(memory) { }
- Memory(const cl_mem& memory) : detail::Wrapper<cl_type>(memory) { }
+ /*! \brief Constructor from cl_mem - takes ownership.
+ *
+ * This effectively transfers ownership of a refcount on the cl_mem
+ * into the new Memory object.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS Memory(const cl_mem& memory) : detail::Wrapper<cl_type>(memory) { }
+ /*! \brief Assignment operator from Memory.
+ *
+ * This calls clRetainMemObject() on the parameter and clReleaseMemObject()
+ * on the previous value held by this instance.
+ */
Memory& operator = (const Memory& rhs)
{
if (this != &rhs) {
@@ -2002,12 +2876,18 @@ public:
return *this;
}
+ /*! \brief Assignment operator from cl_mem - takes ownership.
+ *
+ * This effectively transfers ownership of a refcount on the rhs and calls
+ * clReleaseMemObject() on the value previously held by this instance.
+ */
Memory& operator = (const cl_mem& rhs)
{
detail::Wrapper<cl_type>::operator=(rhs);
return *this;
}
+ //! \brief Wrapper for clGetMemObjectInfo().
template <typename T>
cl_int getInfo(cl_mem_info name, T* param) const
{
@@ -2016,6 +2896,7 @@ public:
__GET_MEM_OBJECT_INFO_ERR);
}
+ //! \brief Wrapper for clGetMemObjectInfo() that returns by value.
template <cl_int name> typename
detail::param_traits<detail::cl_mem_info, name>::param_type
getInfo(cl_int* err = NULL) const
@@ -2030,6 +2911,19 @@ public:
}
#if defined(CL_VERSION_1_1)
+ /*! \brief Registers a callback function to be called when the memory object
+ * is no longer needed.
+ *
+ * Wraps clSetMemObjectDestructorCallback().
+ *
+ * Repeated calls to this function, for a given cl_mem value, will append
+ * to the list of functions called (in reverse order) when memory object�s
+ * resources are freed and the memory object is deleted.
+ *
+ * \note
+ * The registered callbacks are associated with the underlying cl_mem
+ * value - not the Memory class instance.
+ */
cl_int setDestructorCallback(
void (CL_CALLBACK * pfn_notify)(cl_mem, void *),
void * user_data = NULL)
@@ -2047,12 +2941,30 @@ public:
__GET_INFO_HELPER_WITH_RETAIN(cl::Memory)
-/*! \class Buffer
- * \brief Memory buffer interface.
+// Pre-declare copy functions
+class Buffer;
+template< typename IteratorType >
+cl_int copy( IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer );
+template< typename IteratorType >
+cl_int copy( cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator );
+
+/*! \brief Class interface for Buffer Memory Objects.
+ *
+ * See Memory for details about copy semantics, etc.
+ *
+ * \see Memory
*/
class Buffer : public Memory
{
public:
+
+ /*! \brief Constructs a Buffer in a specified context.
+ *
+ * Wraps clCreateBuffer().
+ *
+ * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was
+ * specified. Note alignment & exclusivity requirements.
+ */
Buffer(
const Context& context,
cl_mem_flags flags,
@@ -2069,6 +2981,15 @@ public:
}
}
+ /*! \brief Constructs a Buffer in the default context.
+ *
+ * Wraps clCreateBuffer().
+ *
+ * \param host_ptr Storage to be used if the CL_MEM_USE_HOST_PTR flag was
+ * specified. Note alignment & exclusivity requirements.
+ *
+ * \see Context::getDefault()
+ */
Buffer(
cl_mem_flags flags,
::size_t size,
@@ -2087,13 +3008,75 @@ public:
}
}
+ /*!
+ * \brief Construct a Buffer from a host container via iterators.
+ * If useHostPtr is specified iterators must be random access.
+ */
+ template< typename IteratorType >
+ Buffer(
+ IteratorType startIterator,
+ IteratorType endIterator,
+ bool readOnly = false,
+ bool useHostPtr = false,
+ cl_int* err = NULL)
+ {
+ typedef typename std::iterator_traits<IteratorType>::value_type DataType;
+ cl_int error;
+
+ cl_mem_flags flags = 0;
+ if( readOnly ) {
+ flags |= CL_MEM_READ_ONLY;
+ }
+ else {
+ flags |= CL_MEM_READ_WRITE;
+ }
+ if( useHostPtr ) {
+ flags |= CL_MEM_USE_HOST_PTR;
+ }
+
+ ::size_t size = sizeof(DataType)*(endIterator - startIterator);
+
+ Context context = Context::getDefault(err);
+
+ if( useHostPtr ) {
+ object_ = ::clCreateBuffer(context(), flags, size, static_cast<DataType*>(&*startIterator), &error);
+ } else {
+ object_ = ::clCreateBuffer(context(), flags, size, 0, &error);
+ }
+
+ detail::errHandler(error, __CREATE_BUFFER_ERR);
+ if (err != NULL) {
+ *err = error;
+ }
+
+ if( !useHostPtr ) {
+ error = cl::copy(startIterator, endIterator, *this);
+ detail::errHandler(error, __CREATE_BUFFER_ERR);
+ if (err != NULL) {
+ *err = error;
+ }
+ }
+ }
+ //! \brief Default constructor - initializes to NULL.
Buffer() : Memory() { }
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
Buffer(const Buffer& buffer) : Memory(buffer) { }
- Buffer(const cl_mem& buffer) : Memory(buffer) { }
+ /*! \brief Constructor from cl_mem - takes ownership.
+ *
+ * See Memory for further details.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS Buffer(const cl_mem& buffer) : Memory(buffer) { }
+ /*! \brief Assignment from Buffer - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
Buffer& operator = (const Buffer& rhs)
{
if (this != &rhs) {
@@ -2102,6 +3085,10 @@ public:
return *this;
}
+ /*! \brief Assignment from cl_mem - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
Buffer& operator = (const cl_mem& rhs)
{
Memory::operator=(rhs);
@@ -2109,6 +3096,10 @@ public:
}
#if defined(CL_VERSION_1_1)
+ /*! \brief Creates a new buffer object from this.
+ *
+ * Wraps clCreateSubBuffer().
+ */
Buffer createSubBuffer(
cl_mem_flags flags,
cl_buffer_create_type buffer_create_type,
@@ -2135,6 +3126,14 @@ public:
};
#if defined (USE_DX_INTEROP)
+/*! \brief Class interface for creating OpenCL buffers from ID3D10Buffer's.
+ *
+ * This is provided to facilitate interoperability with Direct3D.
+ *
+ * See Memory for details about copy semantics, etc.
+ *
+ * \see Memory
+ */
class BufferD3D10 : public Buffer
{
public:
@@ -2142,6 +3141,11 @@ public:
cl_context context, cl_mem_flags flags, ID3D10Buffer* buffer,
cl_int* errcode_ret);
+ /*! \brief Constructs a BufferD3D10, in a specified context, from a
+ * given ID3D10Buffer.
+ *
+ * Wraps clCreateFromD3D10BufferKHR().
+ */
BufferD3D10(
const Context& context,
cl_mem_flags flags,
@@ -2149,7 +3153,20 @@ public:
cl_int * err = NULL)
{
static PFN_clCreateFromD3D10BufferKHR pfn_clCreateFromD3D10BufferKHR = NULL;
+
+#if defined(CL_VERSION_1_2)
+ vector<cl_context_properties> props = context.getInfo<CL_CONTEXT_PROPERTIES>();
+ cl_platform platform = -1;
+ for( int i = 0; i < props.size(); ++i ) {
+ if( props[i] == CL_CONTEXT_PLATFORM ) {
+ platform = props[i+1];
+ }
+ }
+ __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, clCreateFromD3D10BufferKHR);
+#endif
+#if defined(CL_VERSION_1_1)
__INIT_CL_EXT_FCN_PTR(clCreateFromD3D10BufferKHR);
+#endif
cl_int error;
object_ = pfn_clCreateFromD3D10BufferKHR(
@@ -2164,12 +3181,25 @@ public:
}
}
+ //! \brief Default constructor - initializes to NULL.
BufferD3D10() : Buffer() { }
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
BufferD3D10(const BufferD3D10& buffer) : Buffer(buffer) { }
- BufferD3D10(const cl_mem& buffer) : Buffer(buffer) { }
+ /*! \brief Constructor from cl_mem - takes ownership.
+ *
+ * See Memory for further details.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS BufferD3D10(const cl_mem& buffer) : Buffer(buffer) { }
+ /*! \brief Assignment from BufferD3D10 - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
BufferD3D10& operator = (const BufferD3D10& rhs)
{
if (this != &rhs) {
@@ -2178,6 +3208,10 @@ public:
return *this;
}
+ /*! \brief Assignment from cl_mem - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
BufferD3D10& operator = (const cl_mem& rhs)
{
Buffer::operator=(rhs);
@@ -2186,12 +3220,22 @@ public:
};
#endif
-/*! \class BufferGL
- * \brief Memory buffer interface for GL interop.
+/*! \brief Class interface for GL Buffer Memory Objects.
+ *
+ * This is provided to facilitate interoperability with OpenGL.
+ *
+ * See Memory for details about copy semantics, etc.
+ *
+ * \see Memory
*/
class BufferGL : public Buffer
{
public:
+ /*! \brief Constructs a BufferGL in a specified context, from a given
+ * GL buffer.
+ *
+ * Wraps clCreateFromGLBuffer().
+ */
BufferGL(
const Context& context,
cl_mem_flags flags,
@@ -2211,12 +3255,25 @@ public:
}
}
+ //! \brief Default constructor - initializes to NULL.
BufferGL() : Buffer() { }
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
BufferGL(const BufferGL& buffer) : Buffer(buffer) { }
- BufferGL(const cl_mem& buffer) : Buffer(buffer) { }
+ /*! \brief Constructor from cl_mem - takes ownership.
+ *
+ * See Memory for further details.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS BufferGL(const cl_mem& buffer) : Buffer(buffer) { }
+ /*! \brief Assignment from BufferGL - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
BufferGL& operator = (const BufferGL& rhs)
{
if (this != &rhs) {
@@ -2225,12 +3282,17 @@ public:
return *this;
}
+ /*! \brief Assignment from cl_mem - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
BufferGL& operator = (const cl_mem& rhs)
{
Buffer::operator=(rhs);
return *this;
}
+ //! \brief Wrapper for clGetGLObjectInfo().
cl_int getObjectInfo(
cl_gl_object_type *type,
GLuint * gl_object_name)
@@ -2241,12 +3303,22 @@ public:
}
};
-/*! \class BufferRenderGL
- * \brief Memory buffer interface for GL interop with renderbuffer.
+/*! \brief Class interface for GL Render Buffer Memory Objects.
+ *
+ * This is provided to facilitate interoperability with OpenGL.
+ *
+ * See Memory for details about copy semantics, etc.
+ *
+ * \see Memory
*/
class BufferRenderGL : public Buffer
{
public:
+ /*! \brief Constructs a BufferRenderGL in a specified context, from a given
+ * GL Renderbuffer.
+ *
+ * Wraps clCreateFromGLRenderbuffer().
+ */
BufferRenderGL(
const Context& context,
cl_mem_flags flags,
@@ -2266,12 +3338,25 @@ public:
}
}
+ //! \brief Default constructor - initializes to NULL.
BufferRenderGL() : Buffer() { }
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
BufferRenderGL(const BufferGL& buffer) : Buffer(buffer) { }
- BufferRenderGL(const cl_mem& buffer) : Buffer(buffer) { }
+ /*! \brief Constructor from cl_mem - takes ownership.
+ *
+ * See Memory for further details.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS BufferRenderGL(const cl_mem& buffer) : Buffer(buffer) { }
+ /*! \brief Assignment from BufferGL - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
BufferRenderGL& operator = (const BufferRenderGL& rhs)
{
if (this != &rhs) {
@@ -2280,12 +3365,17 @@ public:
return *this;
}
+ /*! \brief Assignment from cl_mem - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
BufferRenderGL& operator = (const cl_mem& rhs)
{
Buffer::operator=(rhs);
return *this;
}
+ //! \brief Wrapper for clGetGLObjectInfo().
cl_int getObjectInfo(
cl_gl_object_type *type,
GLuint * gl_object_name)
@@ -2296,18 +3386,34 @@ public:
}
};
-/*! \class Image
- * \brief Base class interface for all images.
+/*! \brief C++ base class for Image Memory objects.
+ *
+ * See Memory for details about copy semantics, etc.
+ *
+ * \see Memory
*/
class Image : public Memory
{
protected:
+ //! \brief Default constructor - initializes to NULL.
Image() : Memory() { }
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
Image(const Image& image) : Memory(image) { }
- Image(const cl_mem& image) : Memory(image) { }
+ /*! \brief Constructor from cl_mem - takes ownership.
+ *
+ * See Memory for further details.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS Image(const cl_mem& image) : Memory(image) { }
+ /*! \brief Assignment from Image - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
Image& operator = (const Image& rhs)
{
if (this != &rhs) {
@@ -2316,6 +3422,10 @@ protected:
return *this;
}
+ /*! \brief Assignment from cl_mem - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
Image& operator = (const cl_mem& rhs)
{
Memory::operator=(rhs);
@@ -2323,6 +3433,7 @@ protected:
}
public:
+ //! \brief Wrapper for clGetImageInfo().
template <typename T>
cl_int getImageInfo(cl_image_info name, T* param) const
{
@@ -2330,7 +3441,8 @@ public:
detail::getInfo(&::clGetImageInfo, object_, name, param),
__GET_IMAGE_INFO_ERR);
}
-
+
+ //! \brief Wrapper for clGetImageInfo() that returns by value.
template <cl_int name> typename
detail::param_traits<detail::cl_image_info, name>::param_type
getImageInfo(cl_int* err = NULL) const
@@ -2345,39 +3457,70 @@ public:
}
};
-/*! \class Image2D
- * \brief Image interface for 2D images.
+#if defined(CL_VERSION_1_2)
+/*! \brief Class interface for 1D Image Memory objects.
+ *
+ * See Memory for details about copy semantics, etc.
+ *
+ * \see Memory
*/
-class Image2D : public Image
+class Image1D : public Image
{
public:
- Image2D(
+ /*! \brief Constructs a 1D Image in a specified context.
+ *
+ * Wraps clCreateImage().
+ */
+ Image1D(
const Context& context,
cl_mem_flags flags,
ImageFormat format,
::size_t width,
- ::size_t height,
- ::size_t row_pitch = 0,
void* host_ptr = NULL,
cl_int* err = NULL)
{
cl_int error;
- object_ = ::clCreateImage2D(
- context(), flags,&format, width, height, row_pitch, host_ptr, &error);
+ cl_image_desc desc;
+ desc.image_type = CL_MEM_OBJECT_IMAGE1D;
+ desc.image_width = width;
+ desc.image_row_pitch = 0;
+ desc.num_mip_levels = 0;
+ desc.num_samples = 0;
+ desc.buffer = 0;
+ object_ = ::clCreateImage(
+ context(),
+ flags,
+ &format,
+ &desc,
+ host_ptr,
+ &error);
- detail::errHandler(error, __CREATE_IMAGE2D_ERR);
+ detail::errHandler(error, __CREATE_IMAGE_ERR);
if (err != NULL) {
*err = error;
}
}
- Image2D() { }
+ //! \brief Default constructor - initializes to NULL.
+ Image1D() { }
- Image2D(const Image2D& image2D) : Image(image2D) { }
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image1D(const Image1D& image1D) : Image(image1D) { }
- Image2D(const cl_mem& image2D) : Image(image2D) { }
+ /*! \brief Constructor from cl_mem - takes ownership.
+ *
+ * See Memory for further details.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS Image1D(const cl_mem& image1D) : Image(image1D) { }
- Image2D& operator = (const Image2D& rhs)
+ /*! \brief Assignment from Image1D - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image1D& operator = (const Image1D& rhs)
{
if (this != &rhs) {
Image::operator=(rhs);
@@ -2385,99 +3528,121 @@ public:
return *this;
}
- Image2D& operator = (const cl_mem& rhs)
+ /*! \brief Assignment from cl_mem - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image1D& operator = (const cl_mem& rhs)
{
Image::operator=(rhs);
return *this;
}
};
-/*! \class Image2DGL
- * \brief 2D image interface for GL interop.
+/*! \class Image1DBuffer
+ * \brief Image interface for 1D buffer images.
*/
-class Image2DGL : public Image2D
+class Image1DBuffer : public Image
{
public:
- Image2DGL(
+ Image1DBuffer(
const Context& context,
cl_mem_flags flags,
- GLenum target,
- GLint miplevel,
- GLuint texobj,
- cl_int * err = NULL)
+ ImageFormat format,
+ ::size_t width,
+ Buffer &buffer,
+ void* host_ptr = NULL,
+ cl_int* err = NULL)
{
cl_int error;
- object_ = ::clCreateFromGLTexture2D(
- context(),
- flags,
- target,
- miplevel,
- texobj,
+ cl_image_desc desc;
+ desc.image_type = CL_MEM_OBJECT_IMAGE1D_BUFFER;
+ desc.image_width = width;
+ desc.image_row_pitch = 0;
+ desc.num_mip_levels = 0;
+ desc.num_samples = 0;
+ desc.buffer = buffer();
+ object_ = ::clCreateImage(
+ context(),
+ flags,
+ &format,
+ &desc,
+ host_ptr,
&error);
- detail::errHandler(error, __CREATE_GL_TEXTURE_2D_ERR);
+ detail::errHandler(error, __CREATE_IMAGE_ERR);
if (err != NULL) {
*err = error;
}
}
- Image2DGL() : Image2D() { }
+ Image1DBuffer() { }
- Image2DGL(const Image2DGL& image) : Image2D(image) { }
+ Image1DBuffer(const Image1DBuffer& image1D) : Image(image1D) { }
- Image2DGL(const cl_mem& image) : Image2D(image) { }
+ __CL_EXPLICIT_CONSTRUCTORS Image1DBuffer(const cl_mem& image1D) : Image(image1D) { }
- Image2DGL& operator = (const Image2DGL& rhs)
+ Image1DBuffer& operator = (const Image1DBuffer& rhs)
{
if (this != &rhs) {
- Image2D::operator=(rhs);
+ Image::operator=(rhs);
}
return *this;
}
- Image2DGL& operator = (const cl_mem& rhs)
+ Image1DBuffer& operator = (const cl_mem& rhs)
{
- Image2D::operator=(rhs);
+ Image::operator=(rhs);
return *this;
}
};
-/*! \class Image3D
- * \brief Image interface for 3D images.
+/*! \class Image1DArray
+ * \brief Image interface for arrays of 1D images.
*/
-class Image3D : public Image
+class Image1DArray : public Image
{
public:
- Image3D(
+ Image1DArray(
const Context& context,
cl_mem_flags flags,
ImageFormat format,
+ ::size_t arraySize,
::size_t width,
- ::size_t height,
- ::size_t depth,
- ::size_t row_pitch = 0,
- ::size_t slice_pitch = 0,
+ ::size_t rowPitch,
void* host_ptr = NULL,
cl_int* err = NULL)
{
cl_int error;
- object_ = ::clCreateImage3D(
- context(), flags, &format, width, height, depth, row_pitch,
- slice_pitch, host_ptr, &error);
+ cl_image_desc desc;
+ desc.image_type = CL_MEM_OBJECT_IMAGE1D_ARRAY;
+ desc.image_array_size = arraySize;
+ desc.image_width = width;
+ desc.image_row_pitch = rowPitch;
+ desc.num_mip_levels = 0;
+ desc.num_samples = 0;
+ desc.buffer = 0;
+ object_ = ::clCreateImage(
+ context(),
+ flags,
+ &format,
+ &desc,
+ host_ptr,
+ &error);
- detail::errHandler(error, __CREATE_IMAGE3D_ERR);
+ detail::errHandler(error, __CREATE_IMAGE_ERR);
if (err != NULL) {
*err = error;
}
}
- Image3D() { }
+ Image1DArray() { }
- Image3D(const Image3D& image3D) : Image(image3D) { }
+ Image1DArray(const Image1DArray& imageArray) : Image(imageArray) { }
- Image3D(const cl_mem& image3D) : Image(image3D) { }
+ __CL_EXPLICIT_CONSTRUCTORS Image1DArray(const cl_mem& imageArray) : Image(imageArray) { }
- Image3D& operator = (const Image3D& rhs)
+ Image1DArray& operator = (const Image1DArray& rhs)
{
if (this != &rhs) {
Image::operator=(rhs);
@@ -2485,270 +3650,812 @@ public:
return *this;
}
- Image3D& operator = (const cl_mem& rhs)
+ Image1DArray& operator = (const cl_mem& rhs)
{
Image::operator=(rhs);
return *this;
}
};
+#endif // #if defined(CL_VERSION_1_2)
+
-/*! \class Image2DGL
- * \brief 2D image interface for GL interop.
+/*! \brief Class interface for 2D Image Memory objects.
+ *
+ * See Memory for details about copy semantics, etc.
+ *
+ * \see Memory
*/
-class Image3DGL : public Image3D
+class Image2D : public Image
{
public:
- Image3DGL(
+ /*! \brief Constructs a 1D Image in a specified context.
+ *
+ * Wraps clCreateImage().
+ */
+ Image2D(
const Context& context,
cl_mem_flags flags,
- GLenum target,
- GLint miplevel,
- GLuint texobj,
- cl_int * err = NULL)
+ ImageFormat format,
+ ::size_t width,
+ ::size_t height,
+ ::size_t row_pitch = 0,
+ void* host_ptr = NULL,
+ cl_int* err = NULL)
{
cl_int error;
- object_ = ::clCreateFromGLTexture3D(
- context(),
- flags,
- target,
- miplevel,
- texobj,
+#if defined(CL_VERSION_1_2)
+ cl_image_desc desc;
+ desc.image_type = CL_MEM_OBJECT_IMAGE2D;
+ desc.image_width = width;
+ desc.image_height = height;
+ desc.image_row_pitch = row_pitch;
+ desc.num_mip_levels = 0;
+ desc.num_samples = 0;
+ desc.buffer = 0;
+ object_ = ::clCreateImage(
+ context(),
+ flags,
+ &format,
+ &desc,
+ host_ptr,
&error);
- detail::errHandler(error, __CREATE_GL_TEXTURE_3D_ERR);
+ detail::errHandler(error, __CREATE_IMAGE_ERR);
+ if (err != NULL) {
+ *err = error;
+ }
+#else
+ object_ = ::clCreateImage2D(
+ context(), flags,&format, width, height, row_pitch, host_ptr, &error);
+
+ detail::errHandler(error, __CREATE_IMAGE2D_ERR);
if (err != NULL) {
*err = error;
}
+#endif // #if defined(CL_VERSION_1_2)
}
- Image3DGL() : Image3D() { }
+ //! \brief Default constructor - initializes to NULL.
+ Image2D() { }
- Image3DGL(const Image3DGL& image) : Image3D(image) { }
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image2D(const Image2D& image2D) : Image(image2D) { }
- Image3DGL(const cl_mem& image) : Image3D(image) { }
+ /*! \brief Constructor from cl_mem - takes ownership.
+ *
+ * See Memory for further details.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS Image2D(const cl_mem& image2D) : Image(image2D) { }
- Image3DGL& operator = (const Image3DGL& rhs)
+ /*! \brief Assignment from Image2D - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image2D& operator = (const Image2D& rhs)
{
if (this != &rhs) {
- Image3D::operator=(rhs);
+ Image::operator=(rhs);
}
return *this;
}
- Image3DGL& operator = (const cl_mem& rhs)
+ /*! \brief Assignment from cl_mem - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image2D& operator = (const cl_mem& rhs)
{
- Image3D::operator=(rhs);
+ Image::operator=(rhs);
return *this;
}
};
-/*! \class Sampler
- * \brief Sampler interface for cl_sampler.
+
+#if !defined(CL_VERSION_1_2)
+/*! \brief Class interface for GL 2D Image Memory objects.
+ *
+ * This is provided to facilitate interoperability with OpenGL.
+ *
+ * See Memory for details about copy semantics, etc.
+ *
+ * \see Memory
+ * \note Deprecated for OpenCL 1.2. Please use ImageGL instead.
*/
-class Sampler : public detail::Wrapper<cl_sampler>
+class CL_EXT_PREFIX__VERSION_1_1_DEPRECATED Image2DGL CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED : public Image2D
{
public:
- Sampler() { }
-
- Sampler(
+ /*! \brief Constructs an Image2DGL in a specified context, from a given
+ * GL Texture.
+ *
+ * Wraps clCreateFromGLTexture2D().
+ */
+ Image2DGL(
const Context& context,
- cl_bool normalized_coords,
- cl_addressing_mode addressing_mode,
- cl_filter_mode filter_mode,
- cl_int* err = NULL)
+ cl_mem_flags flags,
+ GLenum target,
+ GLint miplevel,
+ GLuint texobj,
+ cl_int * err = NULL)
{
cl_int error;
- object_ = ::clCreateSampler(
- context(),
- normalized_coords,
- addressing_mode,
- filter_mode,
+ object_ = ::clCreateFromGLTexture2D(
+ context(),
+ flags,
+ target,
+ miplevel,
+ texobj,
&error);
- detail::errHandler(error, __CREATE_SAMPLER_ERR);
+ detail::errHandler(error, __CREATE_GL_TEXTURE_2D_ERR);
if (err != NULL) {
*err = error;
}
+
}
+
+ //! \brief Default constructor - initializes to NULL.
+ Image2DGL() : Image2D() { }
- Sampler(const Sampler& sampler) : detail::Wrapper<cl_type>(sampler) { }
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image2DGL(const Image2DGL& image) : Image2D(image) { }
- Sampler(const cl_sampler& sampler) : detail::Wrapper<cl_type>(sampler) { }
+ /*! \brief Constructor from cl_mem - takes ownership.
+ *
+ * See Memory for further details.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS Image2DGL(const cl_mem& image) : Image2D(image) { }
- Sampler& operator = (const Sampler& rhs)
+ /*! \brief Assignment from Image2DGL - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image2DGL& operator = (const Image2DGL& rhs)
{
if (this != &rhs) {
- detail::Wrapper<cl_type>::operator=(rhs);
+ Image2D::operator=(rhs);
}
return *this;
}
- Sampler& operator = (const cl_sampler& rhs)
+ /*! \brief Assignment from cl_mem - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image2DGL& operator = (const cl_mem& rhs)
{
- detail::Wrapper<cl_type>::operator=(rhs);
+ Image2D::operator=(rhs);
return *this;
}
+};
+#endif // #if !defined(CL_VERSION_1_2)
- template <typename T>
- cl_int getInfo(cl_sampler_info name, T* param) const
+#if defined(CL_VERSION_1_2)
+/*! \class Image2DArray
+ * \brief Image interface for arrays of 2D images.
+ */
+class Image2DArray : public Image
+{
+public:
+ Image2DArray(
+ const Context& context,
+ cl_mem_flags flags,
+ ImageFormat format,
+ ::size_t arraySize,
+ ::size_t width,
+ ::size_t height,
+ ::size_t rowPitch,
+ ::size_t slicePitch,
+ void* host_ptr = NULL,
+ cl_int* err = NULL)
{
- return detail::errHandler(
- detail::getInfo(&::clGetSamplerInfo, object_, name, param),
- __GET_SAMPLER_INFO_ERR);
- }
+ cl_int error;
+ cl_image_desc desc;
+ desc.image_type = CL_MEM_OBJECT_IMAGE2D_ARRAY;
+ desc.image_array_size = arraySize;
+ desc.image_width = width;
+ desc.image_height = height;
+ desc.image_row_pitch = rowPitch;
+ desc.image_slice_pitch = slicePitch;
+ desc.num_mip_levels = 0;
+ desc.num_samples = 0;
+ desc.buffer = 0;
+ object_ = ::clCreateImage(
+ context(),
+ flags,
+ &format,
+ &desc,
+ host_ptr,
+ &error);
- template <cl_int name> typename
- detail::param_traits<detail::cl_sampler_info, name>::param_type
- getInfo(cl_int* err = NULL) const
- {
- typename detail::param_traits<
- detail::cl_sampler_info, name>::param_type param;
- cl_int result = getInfo(name, ¶m);
+ detail::errHandler(error, __CREATE_IMAGE_ERR);
if (err != NULL) {
- *err = result;
+ *err = error;
}
- return param;
}
-};
-
-__GET_INFO_HELPER_WITH_RETAIN(cl::Sampler)
-
-class Program;
-class CommandQueue;
-class Kernel;
-/*! \class NDRange
- * \brief NDRange interface
- */
-class NDRange
-{
-private:
- size_t<3> sizes_;
- cl_uint dimensions_;
+ Image2DArray() { }
-public:
- NDRange()
- : dimensions_(0)
- { }
+ Image2DArray(const Image2DArray& imageArray) : Image(imageArray) { }
- NDRange(::size_t size0)
- : dimensions_(1)
- {
- sizes_.push_back(size0);
- }
+ __CL_EXPLICIT_CONSTRUCTORS Image2DArray(const cl_mem& imageArray) : Image(imageArray) { }
- NDRange(::size_t size0, ::size_t size1)
- : dimensions_(2)
+ Image2DArray& operator = (const Image2DArray& rhs)
{
- sizes_.push_back(size0);
- sizes_.push_back(size1);
+ if (this != &rhs) {
+ Image::operator=(rhs);
+ }
+ return *this;
}
- NDRange(::size_t size0, ::size_t size1, ::size_t size2)
- : dimensions_(3)
+ Image2DArray& operator = (const cl_mem& rhs)
{
- sizes_.push_back(size0);
- sizes_.push_back(size1);
- sizes_.push_back(size2);
+ Image::operator=(rhs);
+ return *this;
}
-
- operator const ::size_t*() const { return (const ::size_t*) sizes_; }
- ::size_t dimensions() const { return dimensions_; }
};
+#endif // #if defined(CL_VERSION_1_2)
-static const NDRange NullRange;
-
-/*!
- * \struct LocalSpaceArg
- * \brief Local address raper for use with Kernel::setArg
+/*! \brief Class interface for 3D Image Memory objects.
+ *
+ * See Memory for details about copy semantics, etc.
+ *
+ * \see Memory
*/
-struct LocalSpaceArg
+class Image3D : public Image
{
- ::size_t size_;
-};
+public:
+ /*! \brief Constructs a 3D Image in a specified context.
+ *
+ * Wraps clCreateImage().
+ */
+ Image3D(
+ const Context& context,
+ cl_mem_flags flags,
+ ImageFormat format,
+ ::size_t width,
+ ::size_t height,
+ ::size_t depth,
+ ::size_t row_pitch = 0,
+ ::size_t slice_pitch = 0,
+ void* host_ptr = NULL,
+ cl_int* err = NULL)
+ {
+ cl_int error;
+#if defined(CL_VERSION_1_2)
+ cl_image_desc desc;
+ desc.image_type = CL_MEM_OBJECT_IMAGE3D;
+ desc.image_width = width;
+ desc.image_height = height;
+ desc.image_depth = depth;
+ desc.image_row_pitch = row_pitch;
+ desc.image_slice_pitch = slice_pitch;
+ desc.num_mip_levels = 0;
+ desc.num_samples = 0;
+ desc.buffer = 0;
+ object_ = ::clCreateImage(
+ context(),
+ flags,
+ &format,
+ &desc,
+ host_ptr,
+ &error);
-namespace detail {
+ detail::errHandler(error, __CREATE_IMAGE_ERR);
+ if (err != NULL) {
+ *err = error;
+ }
+#else // #if defined(CL_VERSION_1_2)
+ object_ = ::clCreateImage3D(
+ context(), flags, &format, width, height, depth, row_pitch,
+ slice_pitch, host_ptr, &error);
-template <typename T>
-struct KernelArgumentHandler
-{
- static ::size_t size(const T&) { return sizeof(T); }
- static T* ptr(T& value) { return &value; }
-};
+ detail::errHandler(error, __CREATE_IMAGE3D_ERR);
+ if (err != NULL) {
+ *err = error;
+ }
+#endif // #if defined(CL_VERSION_1_2)
+ }
-template <>
-struct KernelArgumentHandler<LocalSpaceArg>
-{
- static ::size_t size(const LocalSpaceArg& value) { return value.size_; }
- static void* ptr(LocalSpaceArg&) { return NULL; }
-};
+ //! \brief Default constructor - initializes to NULL.
+ Image3D() { }
-}
-//! \endcond
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image3D(const Image3D& image3D) : Image(image3D) { }
-inline LocalSpaceArg
-__local(::size_t size)
-{
- LocalSpaceArg ret = { size };
- return ret;
-}
+ /*! \brief Constructor from cl_mem - takes ownership.
+ *
+ * See Memory for further details.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS Image3D(const cl_mem& image3D) : Image(image3D) { }
-//class KernelFunctor;
+ /*! \brief Assignment from Image3D - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image3D& operator = (const Image3D& rhs)
+ {
+ if (this != &rhs) {
+ Image::operator=(rhs);
+ }
+ return *this;
+ }
+
+ /*! \brief Assignment from cl_mem - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image3D& operator = (const cl_mem& rhs)
+ {
+ Image::operator=(rhs);
+ return *this;
+ }
+};
-/*! \class Kernel
- * \brief Kernel interface that implements cl_kernel
+#if !defined(CL_VERSION_1_2)
+/*! \brief Class interface for GL 3D Image Memory objects.
+ *
+ * This is provided to facilitate interoperability with OpenGL.
+ *
+ * See Memory for details about copy semantics, etc.
+ *
+ * \see Memory
*/
-class Kernel : public detail::Wrapper<cl_kernel>
+class Image3DGL : public Image3D
{
public:
- inline Kernel(const Program& program, const char* name, cl_int* err = NULL);
+ /*! \brief Constructs an Image3DGL in a specified context, from a given
+ * GL Texture.
+ *
+ * Wraps clCreateFromGLTexture3D().
+ */
+ Image3DGL(
+ const Context& context,
+ cl_mem_flags flags,
+ GLenum target,
+ GLint miplevel,
+ GLuint texobj,
+ cl_int * err = NULL)
+ {
+ cl_int error;
+ object_ = ::clCreateFromGLTexture3D(
+ context(),
+ flags,
+ target,
+ miplevel,
+ texobj,
+ &error);
- Kernel() { }
+ detail::errHandler(error, __CREATE_GL_TEXTURE_3D_ERR);
+ if (err != NULL) {
+ *err = error;
+ }
+ }
- Kernel(const Kernel& kernel) : detail::Wrapper<cl_type>(kernel) { }
+ //! \brief Default constructor - initializes to NULL.
+ Image3DGL() : Image3D() { }
+
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image3DGL(const Image3DGL& image) : Image3D(image) { }
- Kernel(const cl_kernel& kernel) : detail::Wrapper<cl_type>(kernel) { }
+ /*! \brief Constructor from cl_mem - takes ownership.
+ *
+ * See Memory for further details.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS Image3DGL(const cl_mem& image) : Image3D(image) { }
- Kernel& operator = (const Kernel& rhs)
+ /*! \brief Assignment from Image3DGL - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image3DGL& operator = (const Image3DGL& rhs)
{
if (this != &rhs) {
- detail::Wrapper<cl_type>::operator=(rhs);
+ Image3D::operator=(rhs);
}
return *this;
}
- Kernel& operator = (const cl_kernel& rhs)
+ /*! \brief Assignment from cl_mem - performs shallow copy.
+ *
+ * See Memory for further details.
+ */
+ Image3DGL& operator = (const cl_mem& rhs)
{
- detail::Wrapper<cl_type>::operator=(rhs);
+ Image3D::operator=(rhs);
return *this;
}
+};
+#endif // #if !defined(CL_VERSION_1_2)
- template <typename T>
- cl_int getInfo(cl_kernel_info name, T* param) const
+#if defined(CL_VERSION_1_2)
+/*! \class ImageGL
+ * \brief general image interface for GL interop.
+ * We abstract the 2D and 3D GL images into a single instance here
+ * that wraps all GL sourced images on the grounds that setup information
+ * was performed by OpenCL anyway.
+ */
+class ImageGL : public Image
+{
+public:
+ ImageGL(
+ const Context& context,
+ cl_mem_flags flags,
+ GLenum target,
+ GLint miplevel,
+ GLuint texobj,
+ cl_int * err = NULL)
{
- return detail::errHandler(
- detail::getInfo(&::clGetKernelInfo, object_, name, param),
- __GET_KERNEL_INFO_ERR);
- }
+ cl_int error;
+ object_ = ::clCreateFromGLTexture(
+ context(),
+ flags,
+ target,
+ miplevel,
+ texobj,
+ &error);
- template <cl_int name> typename
- detail::param_traits<detail::cl_kernel_info, name>::param_type
- getInfo(cl_int* err = NULL) const
- {
- typename detail::param_traits<
- detail::cl_kernel_info, name>::param_type param;
- cl_int result = getInfo(name, ¶m);
+ detail::errHandler(error, __CREATE_GL_TEXTURE_ERR);
if (err != NULL) {
- *err = result;
+ *err = error;
}
- return param;
}
- template <typename T>
- cl_int getWorkGroupInfo(
- const Device& device, cl_kernel_work_group_info name, T* param) const
+ ImageGL() : Image() { }
+
+ ImageGL(const ImageGL& image) : Image(image) { }
+
+ __CL_EXPLICIT_CONSTRUCTORS ImageGL(const cl_mem& image) : Image(image) { }
+
+ ImageGL& operator = (const ImageGL& rhs)
{
- return detail::errHandler(
+ if (this != &rhs) {
+ ImageGL::operator=(rhs);
+ }
+ return *this;
+ }
+
+ ImageGL& operator = (const cl_mem& rhs)
+ {
+ ImageGL::operator=(rhs);
+ return *this;
+ }
+};
+#endif // #if defined(CL_VERSION_1_2)
+
+/*! \brief Class interface for cl_sampler.
+ *
+ * \note Copies of these objects are shallow, meaning that the copy will refer
+ * to the same underlying cl_sampler as the original. For details, see
+ * clRetainSampler() and clReleaseSampler().
+ *
+ * \see cl_sampler
+ */
+class Sampler : public detail::Wrapper<cl_sampler>
+{
+public:
+ /*! \brief Destructor.
+ *
+ * This calls clReleaseSampler() on the value held by this instance.
+ */
+ ~Sampler() { }
+
+ //! \brief Default constructor - initializes to NULL.
+ Sampler() { }
+
+ /*! \brief Constructs a Sampler in a specified context.
+ *
+ * Wraps clCreateSampler().
+ */
+ Sampler(
+ const Context& context,
+ cl_bool normalized_coords,
+ cl_addressing_mode addressing_mode,
+ cl_filter_mode filter_mode,
+ cl_int* err = NULL)
+ {
+ cl_int error;
+ object_ = ::clCreateSampler(
+ context(),
+ normalized_coords,
+ addressing_mode,
+ filter_mode,
+ &error);
+
+ detail::errHandler(error, __CREATE_SAMPLER_ERR);
+ if (err != NULL) {
+ *err = error;
+ }
+ }
+
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * This calls clRetainSampler() on the parameter's cl_sampler.
+ */
+ Sampler(const Sampler& sampler) : detail::Wrapper<cl_type>(sampler) { }
+
+ /*! \brief Constructor from cl_sampler - takes ownership.
+ *
+ * This effectively transfers ownership of a refcount on the cl_sampler
+ * into the new Sampler object.
+ */
+ Sampler(const cl_sampler& sampler) : detail::Wrapper<cl_type>(sampler) { }
+
+ /*! \brief Assignment operator from Sampler.
+ *
+ * This calls clRetainSampler() on the parameter and clReleaseSampler()
+ * on the previous value held by this instance.
+ */
+ Sampler& operator = (const Sampler& rhs)
+ {
+ if (this != &rhs) {
+ detail::Wrapper<cl_type>::operator=(rhs);
+ }
+ return *this;
+ }
+
+ /*! \brief Assignment operator from cl_sampler - takes ownership.
+ *
+ * This effectively transfers ownership of a refcount on the rhs and calls
+ * clReleaseSampler() on the value previously held by this instance.
+ */
+ Sampler& operator = (const cl_sampler& rhs)
+ {
+ detail::Wrapper<cl_type>::operator=(rhs);
+ return *this;
+ }
+
+ //! \brief Wrapper for clGetSamplerInfo().
+ template <typename T>
+ cl_int getInfo(cl_sampler_info name, T* param) const
+ {
+ return detail::errHandler(
+ detail::getInfo(&::clGetSamplerInfo, object_, name, param),
+ __GET_SAMPLER_INFO_ERR);
+ }
+
+ //! \brief Wrapper for clGetSamplerInfo() that returns by value.
+ template <cl_int name> typename
+ detail::param_traits<detail::cl_sampler_info, name>::param_type
+ getInfo(cl_int* err = NULL) const
+ {
+ typename detail::param_traits<
+ detail::cl_sampler_info, name>::param_type param;
+ cl_int result = getInfo(name, ¶m);
+ if (err != NULL) {
+ *err = result;
+ }
+ return param;
+ }
+};
+
+__GET_INFO_HELPER_WITH_RETAIN(cl::Sampler)
+
+class Program;
+class CommandQueue;
+class Kernel;
+
+//! \brief Class interface for specifying NDRange values.
+class NDRange
+{
+private:
+ size_t<3> sizes_;
+ cl_uint dimensions_;
+
+public:
+ //! \brief Default constructor - resulting range has zero dimensions.
+ NDRange()
+ : dimensions_(0)
+ { }
+
+ //! \brief Constructs one-dimensional range.
+ NDRange(::size_t size0)
+ : dimensions_(1)
+ {
+ sizes_[0] = size0;
+ }
+
+ //! \brief Constructs two-dimensional range.
+ NDRange(::size_t size0, ::size_t size1)
+ : dimensions_(2)
+ {
+ sizes_[0] = size0;
+ sizes_[1] = size1;
+ }
+
+ //! \brief Constructs three-dimensional range.
+ NDRange(::size_t size0, ::size_t size1, ::size_t size2)
+ : dimensions_(3)
+ {
+ sizes_[0] = size0;
+ sizes_[1] = size1;
+ sizes_[2] = size2;
+ }
+
+ /*! \brief Conversion operator to const ::size_t *.
+ *
+ * \returns a pointer to the size of the first dimension.
+ */
+ operator const ::size_t*() const {
+ return (const ::size_t*) sizes_;
+ }
+
+ //! \brief Queries the number of dimensions in the range.
+ ::size_t dimensions() const { return dimensions_; }
+};
+
+//! \brief A zero-dimensional range.
+static const NDRange NullRange;
+
+//! \brief Local address wrapper for use with Kernel::setArg
+struct LocalSpaceArg
+{
+ ::size_t size_;
+};
+
+namespace detail {
+
+template <typename T>
+struct KernelArgumentHandler
+{
+ static ::size_t size(const T&) { return sizeof(T); }
+ static T* ptr(T& value) { return &value; }
+};
+
+template <>
+struct KernelArgumentHandler<LocalSpaceArg>
+{
+ static ::size_t size(const LocalSpaceArg& value) { return value.size_; }
+ static void* ptr(LocalSpaceArg&) { return NULL; }
+};
+
+}
+//! \endcond
+
+/*! __local
+ * \brief Helper function for generating LocalSpaceArg objects.
+ * Deprecated. Replaced with Local.
+ */
+inline CL_EXT_PREFIX__VERSION_1_1_DEPRECATED LocalSpaceArg
+__local(::size_t size) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
+inline LocalSpaceArg
+__local(::size_t size)
+{
+ LocalSpaceArg ret = { size };
+ return ret;
+}
+
+/*! Local
+ * \brief Helper function for generating LocalSpaceArg objects.
+ */
+inline LocalSpaceArg
+Local(::size_t size)
+{
+ LocalSpaceArg ret = { size };
+ return ret;
+}
+
+//class KernelFunctor;
+
+/*! \brief Class interface for cl_kernel.
+ *
+ * \note Copies of these objects are shallow, meaning that the copy will refer
+ * to the same underlying cl_kernel as the original. For details, see
+ * clRetainKernel() and clReleaseKernel().
+ *
+ * \see cl_kernel
+ */
+class Kernel : public detail::Wrapper<cl_kernel>
+{
+public:
+ inline Kernel(const Program& program, const char* name, cl_int* err = NULL);
+
+ /*! \brief Destructor.
+ *
+ * This calls clReleaseKernel() on the value held by this instance.
+ */
+ ~Kernel() { }
+
+ //! \brief Default constructor - initializes to NULL.
+ Kernel() { }
+
+ /*! \brief Copy constructor - performs shallow copy.
+ *
+ * This calls clRetainKernel() on the parameter's cl_kernel.
+ */
+ Kernel(const Kernel& kernel) : detail::Wrapper<cl_type>(kernel) { }
+
+ /*! \brief Constructor from cl_kernel - takes ownership.
+ *
+ * This effectively transfers ownership of a refcount on the cl_kernel
+ * into the new Kernel object.
+ */
+ __CL_EXPLICIT_CONSTRUCTORS Kernel(const cl_kernel& kernel) : detail::Wrapper<cl_type>(kernel) { }
+
+ /*! \brief Assignment operator from Kernel.
+ *
+ * This calls clRetainKernel() on the parameter and clReleaseKernel()
+ * on the previous value held by this instance.
+ */
+ Kernel& operator = (const Kernel& rhs)
+ {
+ if (this != &rhs) {
+ detail::Wrapper<cl_type>::operator=(rhs);
+ }
+ return *this;
+ }
+
+ /*! \brief Assignment operator from cl_kernel - takes ownership.
+ *
+ * This effectively transfers ownership of a refcount on the rhs and calls
+ * clReleaseKernel() on the value previously held by this instance.
+ */
+ Kernel& operator = (const cl_kernel& rhs)
+ {
+ detail::Wrapper<cl_type>::operator=(rhs);
+ return *this;
+ }
+
+ template <typename T>
+ cl_int getInfo(cl_kernel_info name, T* param) const
+ {
+ return detail::errHandler(
+ detail::getInfo(&::clGetKernelInfo, object_, name, param),
+ __GET_KERNEL_INFO_ERR);
+ }
+
+ template <cl_int name> typename
+ detail::param_traits<detail::cl_kernel_info, name>::param_type
+ getInfo(cl_int* err = NULL) const
+ {
+ typename detail::param_traits<
+ detail::cl_kernel_info, name>::param_type param;
+ cl_int result = getInfo(name, ¶m);
+ if (err != NULL) {
+ *err = result;
+ }
+ return param;
+ }
+
+#if defined(CL_VERSION_1_2)
+ template <typename T>
+ cl_int getArgInfo(cl_uint argIndex, cl_kernel_arg_info name, T* param) const
+ {
+ return detail::errHandler(
+ detail::getInfo(&::clGetKernelArgInfo, object_, argIndex, name, param),
+ __GET_KERNEL_ARG_INFO_ERR);
+ }
+
+ template <cl_int name> typename
+ detail::param_traits<detail::cl_kernel_arg_info, name>::param_type
+ getArgInfo(cl_uint argIndex, cl_int* err = NULL) const
+ {
+ typename detail::param_traits<
+ detail::cl_kernel_arg_info, name>::param_type param;
+ cl_int result = getArgInfo(name, argIndex, ¶m);
+ if (err != NULL) {
+ *err = result;
+ }
+ return param;
+ }
+#endif // #if defined(CL_VERSION_1_2)
+
+ template <typename T>
+ cl_int getWorkGroupInfo(
+ const Device& device, cl_kernel_work_group_info name, T* param) const
+ {
+ return detail::errHandler(
detail::getInfo(
&::clGetKernelWorkGroupInfo, object_, device(), name, param),
__GET_KERNEL_WORK_GROUP_INFO_ERR);
@@ -2956,18 +4663,46 @@ public:
}
}
- Program() { }
-
- Program(const Program& program) : detail::Wrapper<cl_type>(program) { }
-
- Program(const cl_program& program) : detail::Wrapper<cl_type>(program) { }
-
- Program& operator = (const Program& rhs)
- {
- if (this != &rhs) {
- detail::Wrapper<cl_type>::operator=(rhs);
- }
- return *this;
+
+#if defined(CL_VERSION_1_2)
+ /**
+ * Create program using builtin kernels.
+ * \param kernelNames Semi-colon separated list of builtin kernel names
+ */
+ Program(
+ const Context& context,
+ const VECTOR_CLASS<Device>& devices,
+ const STRING_CLASS& kernelNames,
+ cl_int* err = NULL)
+ {
+ cl_int error;
+
+ object_ = ::clCreateProgramWithBuiltInKernels(
+ context(),
+ (cl_uint) devices.size(),
+ (cl_device_id*)&devices.front(),
+ kernelNames.c_str(),
+ &error);
+
+ detail::errHandler(error, __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR);
+ if (err != NULL) {
+ *err = error;
+ }
+ }
+#endif // #if defined(CL_VERSION_1_2)
+
+ Program() { }
+
+ Program(const Program& program) : detail::Wrapper<cl_type>(program) { }
+
+ __CL_EXPLICIT_CONSTRUCTORS Program(const cl_program& program) : detail::Wrapper<cl_type>(program) { }
+
+ Program& operator = (const Program& rhs)
+ {
+ if (this != &rhs) {
+ detail::Wrapper<cl_type>::operator=(rhs);
+ }
+ return *this;
}
Program& operator = (const cl_program& rhs)
@@ -3010,6 +4745,27 @@ public:
__BUILD_PROGRAM_ERR);
}
+#if defined(CL_VERSION_1_2)
+ cl_int compile(
+ const char* options = NULL,
+ void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL,
+ void* data = NULL) const
+ {
+ return detail::errHandler(
+ ::clCompileProgram(
+ object_,
+ 0,
+ NULL,
+ options,
+ 0,
+ NULL,
+ NULL,
+ notifyFptr,
+ data),
+ __COMPILE_PROGRAM_ERR);
+ }
+#endif
+
template <typename T>
cl_int getInfo(cl_program_info name, T* param) const
{
@@ -3074,6 +4830,96 @@ public:
}
};
+#if defined(CL_VERSION_1_2)
+inline Program linkProgram(
+ Program input1,
+ Program input2,
+ const char* options = NULL,
+ void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL,
+ void* data = NULL,
+ cl_int* err = NULL)
+{
+ cl_int err_local;
+
+ cl_program programs[2] = { input1(), input2() };
+
+ Context ctx = input1.getInfo<CL_PROGRAM_CONTEXT>();
+
+ cl_program prog = ::clLinkProgram(
+ ctx(),
+ 0,
+ NULL,
+ options,
+ 2,
+ programs,
+ notifyFptr,
+ data,
+ &err_local);
+
+ if (err_local != CL_SUCCESS) {
+ err_local = detail::errHandler(err_local,__COMPILE_PROGRAM_ERR);
+ if (err != NULL) {
+ *err = err_local;
+ }
+ }
+
+ return Program(prog);
+}
+
+inline Program linkProgram(
+ VECTOR_CLASS<Program> inputPrograms,
+ const char* options = NULL,
+ void (CL_CALLBACK * notifyFptr)(cl_program, void *) = NULL,
+ void* data = NULL,
+ cl_int* err = NULL)
+{
+ cl_int err_local;
+
+ if (inputPrograms.size() == 0) {
+ err_local = detail::errHandler(CL_INVALID_VALUE,__COMPILE_PROGRAM_ERR);
+ if (err != NULL) {
+ *err = err_local;
+ }
+ return Program();
+ }
+
+ cl_program * programs = (cl_program*) alloca(inputPrograms.size() * sizeof(cl_program));
+
+ if (programs != NULL) {
+ for (unsigned int i = 0; i < inputPrograms.size(); i++) {
+ programs[i] = inputPrograms[i]();
+ }
+ }
+ else {
+ err_local = detail::errHandler(CL_OUT_OF_HOST_MEMORY,__COMPILE_PROGRAM_ERR);
+ if (err != NULL) {
+ *err = err_local;
+ }
+ return Program();
+ }
+
+ cl_program prog = ::clLinkProgram(
+ Context::getDefault()(),
+ 0,
+ NULL,
+ options,
+ (cl_uint)inputPrograms.size(),
+ programs,
+ notifyFptr,
+ data,
+ &err_local);
+
+ if (err_local != CL_SUCCESS) {
+ err_local = detail::errHandler(err_local,__COMPILE_PROGRAM_ERR);
+ if (err != NULL) {
+ *err = err_local;
+ }
+ }
+
+ return Program(prog);
+}
+#endif
+
template<>
inline VECTOR_CLASS<char *> cl::Program::getInfo<CL_PROGRAM_BINARIES>(cl_int* err) const
{
@@ -3167,7 +5013,7 @@ public:
int state = detail::compare_exchange(
&default_initialized_,
__DEFAULT_BEING_INITIALIZED, __DEFAULT_NOT_INITIALIZED);
-
+
if (state & __DEFAULT_INITIALIZED) {
if (err != NULL) {
*err = default_error_;
@@ -3178,7 +5024,7 @@ public:
if (state & __DEFAULT_BEING_INITIALIZED) {
// Assume writes will propagate eventually...
while(default_initialized_ != __DEFAULT_INITIALIZED) {
- ;
+ detail::fence();
}
if (err != NULL) {
@@ -3200,7 +5046,6 @@ public:
else {
Device device = context.getInfo<CL_CONTEXT_DEVICES>()[0];
-
default_ = CommandQueue(context, device, 0, &error);
detail::errHandler(error, __CREATE_COMMAND_QUEUE_ERR);
@@ -3209,9 +5054,14 @@ public:
}
}
+ detail::fence();
+
default_error_ = error;
// Assume writes will propagate eventually...
default_initialized_ = __DEFAULT_INITIALIZED;
+
+ detail::fence();
+
if (err != NULL) {
*err = default_error_;
}
@@ -3335,7 +5185,6 @@ public:
return err;
}
-#if defined(CL_VERSION_1_1)
cl_int enqueueReadBufferRect(
const Buffer& buffer,
cl_bool blocking,
@@ -3375,7 +5224,6 @@ public:
return err;
}
-
cl_int enqueueWriteBufferRect(
const Buffer& buffer,
cl_bool blocking,
@@ -3451,7 +5299,43 @@ public:
return err;
}
-#endif
+
+#if defined(CL_VERSION_1_2)
+ /**
+ * Enqueue a command to fill a buffer object with a pattern
+ * of a given size. The pattern is specified a as vector.
+ * \tparam PatternType The datatype of the pattern field.
+ * The pattern type must be an accepted OpenCL data type.
+ */
+ template<typename PatternType>
+ cl_int enqueueFillBuffer(
+ const Buffer& buffer,
+ PatternType pattern,
+ ::size_t offset,
+ ::size_t size,
+ const VECTOR_CLASS<Event>* events = NULL,
+ Event* event = NULL) const
+ {
+ cl_event tmp;
+ cl_int err = detail::errHandler(
+ ::clEnqueueFillBuffer(
+ object_,
+ buffer(),
+ static_cast<void*>(&pattern),
+ sizeof(PatternType),
+ offset,
+ size,
+ (events != NULL) ? (cl_uint) events->size() : 0,
+ (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
+ (event != NULL) ? &tmp : NULL),
+ __ENQUEUE_FILL_BUFFER_ERR);
+
+ if (event != NULL && err == CL_SUCCESS)
+ *event = tmp;
+
+ return err;
+ }
+#endif // #if defined(CL_VERSION_1_2)
cl_int enqueueReadImage(
const Image& image,
@@ -3532,6 +5416,110 @@ public:
return err;
}
+#if defined(CL_VERSION_1_2)
+ /**
+ * Enqueue a command to fill an image object with a specified color.
+ * \param fillColor is the color to use to fill the image.
+ * This is a four component RGBA floating-point color value if
+ * the image channel data type is not an unnormalized signed or
+ * unsigned data type.
+ */
+ cl_int enqueueFillImage(
+ const Image& image,
+ cl_float4 fillColor,
+ const size_t<3>& origin,
+ const size_t<3>& region,
+ const VECTOR_CLASS<Event>* events = NULL,
+ Event* event = NULL) const
+ {
+ cl_event tmp;
+ cl_int err = detail::errHandler(
+ ::clEnqueueFillImage(
+ object_,
+ image(),
+ static_cast<void*>(&fillColor),
+ (const ::size_t *) origin,
+ (const ::size_t *) region,
+ (events != NULL) ? (cl_uint) events->size() : 0,
+ (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
+ (event != NULL) ? &tmp : NULL),
+ __ENQUEUE_FILL_IMAGE_ERR);
+
+ if (event != NULL && err == CL_SUCCESS)
+ *event = tmp;
+
+ return err;
+ }
+
+ /**
+ * Enqueue a command to fill an image object with a specified color.
+ * \param fillColor is the color to use to fill the image.
+ * This is a four component RGBA signed integer color value if
+ * the image channel data type is an unnormalized signed integer
+ * type.
+ */
+ cl_int enqueueFillImage(
+ const Image& image,
+ cl_int4 fillColor,
+ const size_t<3>& origin,
+ const size_t<3>& region,
+ const VECTOR_CLASS<Event>* events = NULL,
+ Event* event = NULL) const
+ {
+ cl_event tmp;
+ cl_int err = detail::errHandler(
+ ::clEnqueueFillImage(
+ object_,
+ image(),
+ static_cast<void*>(&fillColor),
+ (const ::size_t *) origin,
+ (const ::size_t *) region,
+ (events != NULL) ? (cl_uint) events->size() : 0,
+ (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
+ (event != NULL) ? &tmp : NULL),
+ __ENQUEUE_FILL_IMAGE_ERR);
+
+ if (event != NULL && err == CL_SUCCESS)
+ *event = tmp;
+
+ return err;
+ }
+
+ /**
+ * Enqueue a command to fill an image object with a specified color.
+ * \param fillColor is the color to use to fill the image.
+ * This is a four component RGBA unsigned integer color value if
+ * the image channel data type is an unnormalized unsigned integer
+ * type.
+ */
+ cl_int enqueueFillImage(
+ const Image& image,
+ cl_uint4 fillColor,
+ const size_t<3>& origin,
+ const size_t<3>& region,
+ const VECTOR_CLASS<Event>* events = NULL,
+ Event* event = NULL) const
+ {
+ cl_event tmp;
+ cl_int err = detail::errHandler(
+ ::clEnqueueFillImage(
+ object_,
+ image(),
+ static_cast<void*>(&fillColor),
+ (const ::size_t *) origin,
+ (const ::size_t *) region,
+ (events != NULL) ? (cl_uint) events->size() : 0,
+ (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
+ (event != NULL) ? &tmp : NULL),
+ __ENQUEUE_FILL_IMAGE_ERR);
+
+ if (event != NULL && err == CL_SUCCESS)
+ *event = tmp;
+
+ return err;
+ }
+#endif // #if defined(CL_VERSION_1_2)
+
cl_int enqueueCopyImageToBuffer(
const Image& src,
const Buffer& dst,
@@ -3657,6 +5645,104 @@ public:
return err;
}
+#if defined(CL_VERSION_1_2)
+ /**
+ * Enqueues a marker command which waits for either a list of events to complete,
+ * or all previously enqueued commands to complete.
+ *
+ * Enqueues a marker command which waits for either a list of events to complete,
+ * or if the list is empty it waits for all commands previously enqueued in command_queue
+ * to complete before it completes. This command returns an event which can be waited on,
+ * i.e. this event can be waited on to insure that all events either in the event_wait_list
+ * or all previously enqueued commands, queued before this command to command_queue,
+ * have completed.
+ */
+ cl_int enqueueMarkerWithWaitList(
+ const VECTOR_CLASS<Event> *events = 0,
+ Event *event = 0)
+ {
+ cl_event tmp;
+ cl_int err = detail::errHandler(
+ ::clEnqueueMarkerWithWaitList(
+ object_,
+ (events != NULL) ? (cl_uint) events->size() : 0,
+ (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
+ (event != NULL) ? &tmp : NULL),
+ __ENQUEUE_UNMAP_MEM_OBJECT_ERR);
+
+ if (event != NULL && err == CL_SUCCESS)
+ *event = tmp;
+
+ return err;
+ }
+
+ /**
+ * A synchronization point that enqueues a barrier operation.
+ *
+ * Enqueues a barrier command which waits for either a list of events to complete,
+ * or if the list is empty it waits for all commands previously enqueued in command_queue
+ * to complete before it completes. This command blocks command execution, that is, any
+ * following commands enqueued after it do not execute until it completes. This command
+ * returns an event which can be waited on, i.e. this event can be waited on to insure that
+ * all events either in the event_wait_list or all previously enqueued commands, queued
+ * before this command to command_queue, have completed.
+ */
+ cl_int clEnqueueBarrierWithWaitList(
+ const VECTOR_CLASS<Event> *events = 0,
+ Event *event = 0)
+ {
+ cl_event tmp;
+ cl_int err = detail::errHandler(
+ ::clEnqueueMarkerWithWaitList(
+ object_,
+ (events != NULL) ? (cl_uint) events->size() : 0,
+ (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
+ (event != NULL) ? &tmp : NULL),
+ __ENQUEUE_UNMAP_MEM_OBJECT_ERR);
+
+ if (event != NULL && err == CL_SUCCESS)
+ *event = tmp;
+
+ return err;
+ }
+
+ /**
+ * Enqueues a command to indicate with which device a set of memory objects
+ * should be associated.
+ */
+ cl_int enqueueMigrateMemObjects(
+ const VECTOR_CLASS<Memory> &memObjects,
+ cl_mem_migration_flags flags,
+ const VECTOR_CLASS<Event>* events = NULL,
+ Event* event = NULL
+ )
+ {
+ cl_event tmp;
+
+ cl_mem* localMemObjects = static_cast<cl_mem*>(alloca(memObjects.size() * sizeof(cl_mem)));
+ for( int i = 0; i < (int)memObjects.size(); ++i ) {
+ localMemObjects[i] = memObjects[i]();
+ }
+
+
+ cl_int err = detail::errHandler(
+ ::clEnqueueMigrateMemObjects(
+ object_,
+ (cl_uint)memObjects.size(),
+ static_cast<const cl_mem*>(localMemObjects),
+ flags,
+ (events != NULL) ? (cl_uint) events->size() : 0,
+ (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
+ (event != NULL) ? &tmp : NULL),
+ __ENQUEUE_UNMAP_MEM_OBJECT_ERR);
+
+ if (event != NULL && err == CL_SUCCESS)
+ *event = tmp;
+
+ return err;
+ }
+#endif // #if defined(CL_VERSION_1_2)
+
cl_int enqueueNDRangeKernel(
const Kernel& kernel,
const NDRange& offset,
@@ -3704,7 +5790,7 @@ public:
}
cl_int enqueueNativeKernel(
- void (*userFptr)(void *),
+ void (CL_CALLBACK *userFptr)(void *),
std::pair<void*, ::size_t> args,
const VECTOR_CLASS<Memory>* mem_objects = NULL,
const VECTOR_CLASS<const void*>* mem_locs = NULL,
@@ -3739,14 +5825,20 @@ public:
return err;
}
- cl_int enqueueMarker(Event* event = NULL) const
+/**
+ * Deprecated APIs for 1.2
+ */
+#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2))
+ CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
+ cl_int enqueueMarker(Event* event = NULL) const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
{
return detail::errHandler(
::clEnqueueMarker(object_, (cl_event*) event),
__ENQUEUE_MARKER_ERR);
}
- cl_int enqueueWaitForEvents(const VECTOR_CLASS<Event>& events) const
+ CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
+ cl_int enqueueWaitForEvents(const VECTOR_CLASS<Event>& events) const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
{
return detail::errHandler(
::clEnqueueWaitForEvents(
@@ -3755,6 +5847,7 @@ public:
(const cl_event*) &events.front()),
__ENQUEUE_WAIT_FOR_EVENTS_ERR);
}
+#endif // #if defined(CL_VERSION_1_1)
cl_int enqueueAcquireGLObjects(
const VECTOR_CLASS<Memory>* mem_objects = NULL,
@@ -3814,9 +5907,17 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clEnqueueReleaseD3D10ObjectsKHR)(
const VECTOR_CLASS<Memory>* mem_objects = NULL,
const VECTOR_CLASS<Event>* events = NULL,
Event* event = NULL) const
- {
- static PFN_clEnqueueAcquireD3D10ObjectsKHR pfn_clEnqueueAcquireD3D10ObjectsKHR = NULL;
- __INIT_CL_EXT_FCN_PTR(clEnqueueAcquireD3D10ObjectsKHR);
+ {
+ static PFN_clEnqueueAcquireD3D10ObjectsKHR pfn_clEnqueueAcquireD3D10ObjectsKHR = NULL;
+#if defined(CL_VERSION_1_2)
+ cl_context context = getInfo<CL_QUEUE_CONTEXT>();
+ cl::Device device(getInfo<CL_QUEUE_DEVICE>());
+ cl_platform_id platform = device.getInfo<CL_DEVICE_PLATFORM>();
+ __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, clEnqueueAcquireD3D10ObjectsKHR);
+#endif
+#if defined(CL_VERSION_1_1)
+ __INIT_CL_EXT_FCN_PTR(clEnqueueAcquireD3D10ObjectsKHR);
+#endif
cl_event tmp;
cl_int err = detail::errHandler(
@@ -3841,7 +5942,15 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clEnqueueReleaseD3D10ObjectsKHR)(
Event* event = NULL) const
{
static PFN_clEnqueueReleaseD3D10ObjectsKHR pfn_clEnqueueReleaseD3D10ObjectsKHR = NULL;
+#if defined(CL_VERSION_1_2)
+ cl_context context = getInfo<CL_QUEUE_CONTEXT>();
+ cl::Device device(getInfo<CL_QUEUE_DEVICE>());
+ cl_platform_id platform = device.getInfo<CL_DEVICE_PLATFORM>();
+ __INIT_CL_EXT_FCN_PTR_PLATFORM(platform, clEnqueueReleaseD3D10ObjectsKHR);
+#endif // #if defined(CL_VERSION_1_2)
+#if defined(CL_VERSION_1_1)
__INIT_CL_EXT_FCN_PTR(clEnqueueReleaseD3D10ObjectsKHR);
+#endif // #if defined(CL_VERSION_1_1)
cl_event tmp;
cl_int err = detail::errHandler(
@@ -3861,12 +5970,18 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *PFN_clEnqueueReleaseD3D10ObjectsKHR)(
}
#endif
- cl_int enqueueBarrier() const
+/**
+ * Deprecated APIs for 1.2
+ */
+#if defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) || (defined(CL_VERSION_1_1) && !defined(CL_VERSION_1_2))
+ CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
+ cl_int enqueueBarrier() const CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
{
return detail::errHandler(
::clEnqueueBarrier(object_),
__ENQUEUE_BARRIER_ERR);
}
+#endif // #if defined(CL_VERSION_1_1)
cl_int flush() const
{
@@ -3929,23 +6044,148 @@ inline cl_int enqueueWriteBuffer(
return queue.enqueueWriteBuffer(buffer, blocking, offset, size, ptr, events, event);
}
-inline cl_int enqueueCopyBuffer(
- const Buffer& src,
- const Buffer& dst,
- ::size_t src_offset,
- ::size_t dst_offset,
+inline void* enqueueMapBuffer(
+ const Buffer& buffer,
+ cl_bool blocking,
+ cl_map_flags flags,
+ ::size_t offset,
::size_t size,
const VECTOR_CLASS<Event>* events = NULL,
- Event* event = NULL)
+ Event* event = NULL,
+ cl_int* err = NULL)
{
cl_int error;
CommandQueue queue = CommandQueue::getDefault(&error);
+ detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR);
+ if (err != NULL) {
+ *err = error;
+ }
+ void * result = ::clEnqueueMapBuffer(
+ queue(), buffer(), blocking, flags, offset, size,
+ (events != NULL) ? (cl_uint) events->size() : 0,
+ (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
+ (cl_event*) event,
+ &error);
+
+ detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR);
+ if (err != NULL) {
+ *err = error;
+ }
+ return result;
+}
+
+inline cl_int enqueueUnmapMemObject(
+ const Memory& memory,
+ void* mapped_ptr,
+ const VECTOR_CLASS<Event>* events = NULL,
+ Event* event = NULL)
+{
+ cl_int error;
+ CommandQueue queue = CommandQueue::getDefault(&error);
+ detail::errHandler(error, __ENQUEUE_MAP_BUFFER_ERR);
if (error != CL_SUCCESS) {
return error;
}
- return queue.enqueueCopyBuffer(src, dst, src_offset, dst_offset, size, events, event);
+ cl_event tmp;
+ cl_int err = detail::errHandler(
+ ::clEnqueueUnmapMemObject(
+ queue(), memory(), mapped_ptr,
+ (events != NULL) ? (cl_uint) events->size() : 0,
+ (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
+ (event != NULL) ? &tmp : NULL),
+ __ENQUEUE_UNMAP_MEM_OBJECT_ERR);
+
+ if (event != NULL && err == CL_SUCCESS)
+ *event = tmp;
+
+ return err;
+}
+
+inline cl_int enqueueCopyBuffer(
+ const Buffer& src,
+ const Buffer& dst,
+ ::size_t src_offset,
+ ::size_t dst_offset,
+ ::size_t size,
+ const VECTOR_CLASS<Event>* events = NULL,
+ Event* event = NULL)
+{
+ cl_int error;
+ CommandQueue queue = CommandQueue::getDefault(&error);
+
+ if (error != CL_SUCCESS) {
+ return error;
+ }
+
+ return queue.enqueueCopyBuffer(src, dst, src_offset, dst_offset, size, events, event);
+}
+
+/**
+ * Blocking copy operation between iterators and a buffer.
+ */
+template< typename IteratorType >
+inline cl_int copy( IteratorType startIterator, IteratorType endIterator, cl::Buffer &buffer )
+{
+ typedef typename std::iterator_traits<IteratorType>::value_type DataType;
+ cl_int error;
+
+ ::size_t length = endIterator-startIterator;
+ ::size_t byteLength = length*sizeof(DataType);
+
+ DataType *pointer =
+ static_cast<DataType*>(enqueueMapBuffer(buffer, CL_TRUE, CL_MAP_WRITE, 0, byteLength, 0, 0, &error));
+ // if exceptions enabled, enqueueMapBuffer will throw
+ if( error != CL_SUCCESS ) {
+ return error;
+ }
+#if defined(_MSC_VER)
+ std::copy(
+ startIterator,
+ endIterator,
+ stdext::checked_array_iterator<DataType*>(
+ pointer, length));
+#else
+ std::copy(startIterator, endIterator, pointer);
+#endif
+ Event endEvent;
+ error = enqueueUnmapMemObject(buffer, pointer, 0, &endEvent);
+ // if exceptions enabled, enqueueUnmapMemObject will throw
+ if( error != CL_SUCCESS ) {
+ return error;
+ }
+ endEvent.wait();
+ return CL_SUCCESS;
+}
+
+/**
+ * Blocking copy operation between iterators and a buffer.
+ */
+template< typename IteratorType >
+inline cl_int copy( cl::Buffer &buffer, IteratorType startIterator, IteratorType endIterator )
+{
+ typedef typename std::iterator_traits<IteratorType>::value_type DataType;
+ cl_int error;
+
+ ::size_t length = endIterator-startIterator;
+ ::size_t byteLength = length*sizeof(DataType);
+
+ DataType *pointer =
+ static_cast<DataType*>(enqueueMapBuffer(buffer, CL_TRUE, CL_MAP_READ, 0, byteLength, 0, 0, &error));
+ // if exceptions enabled, enqueueMapBuffer will throw
+ if( error != CL_SUCCESS ) {
+ return error;
+ }
+ std::copy(pointer, pointer + length, startIterator);
+ Event endEvent;
+ error = enqueueUnmapMemObject(buffer, pointer, 0, &endEvent);
+ // if exceptions enabled, enqueueUnmapMemObject will throw
+ if( error != CL_SUCCESS ) {
+ return error;
+ }
+ endEvent.wait();
+ return CL_SUCCESS;
}
#if defined(CL_VERSION_1_1)
@@ -3977,7 +6217,7 @@ inline cl_int enqueueReadBufferRect(
host_offset,
region,
buffer_row_pitch,
- host_slice_pitch,
+ buffer_slice_pitch,
host_row_pitch,
host_slice_pitch,
ptr,
@@ -4214,7 +6454,7 @@ inline cl_int finish(void)
if (error != CL_SUCCESS) {
return error;
- }
+ }
return queue.finish();
@@ -4226,13 +6466,13 @@ inline cl_int finish(void)
// Requires the C++11 std::tr1::function (note do not support TR1)
// Visual Studio 2010 and GCC 4.2
-#if (defined(_WIN32) && (_MSC_VER >= 1600)) || defined(linux) || defined(__APPLE__) || defined(__MACOSX)
struct EnqueueArgs
{
CommandQueue queue_;
- NDRange offset_;
- NDRange global_;
- NDRange local_;
+ const NDRange offset_;
+ const NDRange global_;
+ const NDRange local_;
+ VECTOR_CLASS<Event> events_;
EnqueueArgs(NDRange global) :
queue_(CommandQueue::getDefault()),
@@ -4261,7 +6501,64 @@ struct EnqueueArgs
}
- EnqueueArgs(CommandQueue queue, NDRange global) :
+ EnqueueArgs(Event e, NDRange global) :
+ queue_(CommandQueue::getDefault()),
+ offset_(NullRange),
+ global_(global),
+ local_(NullRange)
+ {
+ events_.push_back(e);
+ }
+
+ EnqueueArgs(Event e, NDRange global, NDRange local) :
+ queue_(CommandQueue::getDefault()),
+ offset_(NullRange),
+ global_(global),
+ local_(local)
+ {
+ events_.push_back(e);
+ }
+
+ EnqueueArgs(Event e, NDRange offset, NDRange global, NDRange local) :
+ queue_(CommandQueue::getDefault()),
+ offset_(offset),
+ global_(global),
+ local_(local)
+ {
+ events_.push_back(e);
+ }
+
+ EnqueueArgs(const VECTOR_CLASS<Event> &events, NDRange global) :
+ queue_(CommandQueue::getDefault()),
+ offset_(NullRange),
+ global_(global),
+ local_(NullRange),
+ events_(events)
+ {
+
+ }
+
+ EnqueueArgs(const VECTOR_CLASS<Event> &events, NDRange global, NDRange local) :
+ queue_(CommandQueue::getDefault()),
+ offset_(NullRange),
+ global_(global),
+ local_(local),
+ events_(events)
+ {
+
+ }
+
+ EnqueueArgs(const VECTOR_CLASS<Event> &events, NDRange offset, NDRange global, NDRange local) :
+ queue_(CommandQueue::getDefault()),
+ offset_(offset),
+ global_(global),
+ local_(local),
+ events_(events)
+ {
+
+ }
+
+ EnqueueArgs(CommandQueue &queue, NDRange global) :
queue_(queue),
offset_(NullRange),
global_(global),
@@ -4270,7 +6567,7 @@ struct EnqueueArgs
}
- EnqueueArgs(CommandQueue queue, NDRange global, NDRange local) :
+ EnqueueArgs(CommandQueue &queue, NDRange global, NDRange local) :
queue_(queue),
offset_(NullRange),
global_(global),
@@ -4279,12 +6576,69 @@ struct EnqueueArgs
}
- EnqueueArgs(CommandQueue queue, NDRange offset, NDRange global, NDRange local) :
+ EnqueueArgs(CommandQueue &queue, NDRange offset, NDRange global, NDRange local) :
+ queue_(queue),
+ offset_(offset),
+ global_(global),
+ local_(local)
+ {
+
+ }
+
+ EnqueueArgs(CommandQueue &queue, Event e, NDRange global) :
+ queue_(queue),
+ offset_(NullRange),
+ global_(global),
+ local_(NullRange)
+ {
+ events_.push_back(e);
+ }
+
+ EnqueueArgs(CommandQueue &queue, Event e, NDRange global, NDRange local) :
+ queue_(queue),
+ offset_(NullRange),
+ global_(global),
+ local_(local)
+ {
+ events_.push_back(e);
+ }
+
+ EnqueueArgs(CommandQueue &queue, Event e, NDRange offset, NDRange global, NDRange local) :
queue_(queue),
offset_(offset),
global_(global),
local_(local)
{
+ events_.push_back(e);
+ }
+
+ EnqueueArgs(CommandQueue &queue, const VECTOR_CLASS<Event> &events, NDRange global) :
+ queue_(queue),
+ offset_(NullRange),
+ global_(global),
+ local_(NullRange),
+ events_(events)
+ {
+
+ }
+
+ EnqueueArgs(CommandQueue &queue, const VECTOR_CLASS<Event> &events, NDRange global, NDRange local) :
+ queue_(queue),
+ offset_(NullRange),
+ global_(global),
+ local_(local),
+ events_(events)
+ {
+
+ }
+
+ EnqueueArgs(CommandQueue &queue, const VECTOR_CLASS<Event> &events, NDRange offset, NDRange global, NDRange local) :
+ queue_(queue),
+ offset_(offset),
+ global_(global),
+ local_(local),
+ events_(events)
+ {
}
};
@@ -4300,34 +6654,17 @@ struct SetArg
{
kernel.setArg(index, arg);
}
-};
+};
template<int index>
struct SetArg<index, NullType>
{
- static void set (Kernel kernel, NullType)
- {
+ static void set (Kernel, NullType)
+ {
}
};
-template<typename T>
-struct MoveToDevice
-{
- static void move(CommandQueue, T)
- {
- }
-};
-
-
-template<typename T>
-struct MoveFromDevice
-{
- static void move(CommandQueue, T)
- {
- }
-};
-
template <
typename T0, typename T1, typename T2, typename T3,
@@ -4337,31 +6674,8 @@ template <
typename T16, typename T17, typename T18, typename T19,
typename T20, typename T21, typename T22, typename T23,
typename T24, typename T25, typename T26, typename T27,
- typename T28, typename T29, typename T30, typename T31,
- typename T32, typename T33, typename T34, typename T35,
- typename T36, typename T37, typename T38, typename T39,
- typename T40, typename T41, typename T42, typename T43,
- typename T44, typename T45, typename T46, typename T47,
- typename T48, typename T49, typename T50, typename T51,
- typename T52, typename T53, typename T54, typename T55,
- typename T56, typename T57, typename T58, typename T59,
- typename T60, typename T61, typename T62, typename T63,
- typename T64, typename T65, typename T66, typename T67,
- typename T68, typename T69, typename T70, typename T71,
- typename T72, typename T73, typename T74, typename T75,
- typename T76, typename T77, typename T78, typename T79,
- typename T80, typename T81, typename T82, typename T83,
- typename T84, typename T85, typename T86, typename T87,
- typename T88, typename T89, typename T90, typename T91,
- typename T92, typename T93, typename T94, typename T95,
- typename T96, typename T97, typename T98, typename T99,
- typename T100, typename T101, typename T102, typename T103,
- typename T104, typename T105, typename T106, typename T107,
- typename T108, typename T109, typename T110, typename T111,
- typename T112, typename T113, typename T114, typename T115,
- typename T116, typename T117, typename T118, typename T119,
- typename T120, typename T121, typename T122, typename T123,
- typename T124, typename T125, typename T126, typename T127>
+ typename T28, typename T29, typename T30, typename T31
+>
class KernelFunctorGlobal
{
private:
@@ -4369,8 +6683,7 @@ private:
public:
KernelFunctorGlobal(
- Kernel kernel,
- cl_int * err = NULL) :
+ Kernel kernel) :
kernel_(kernel)
{}
@@ -4414,103 +6727,8 @@ public:
T28 t28 = NullType(),
T29 t29 = NullType(),
T30 t30 = NullType(),
- T31 t31 = NullType(),
- T32 t32 = NullType(),
- T33 t33 = NullType(),
- T34 t34 = NullType(),
- T35 t35 = NullType(),
- T36 t36 = NullType(),
- T37 t37 = NullType(),
- T38 t38 = NullType(),
- T39 t39 = NullType(),
- T40 t40 = NullType(),
- T41 t41 = NullType(),
- T42 t42 = NullType(),
- T43 t43 = NullType(),
- T44 t44 = NullType(),
- T45 t45 = NullType(),
- T46 t46 = NullType(),
- T47 t47 = NullType(),
- T48 t48 = NullType(),
- T49 t49 = NullType(),
- T50 t50 = NullType(),
- T51 t51 = NullType(),
- T52 t52 = NullType(),
- T53 t53 = NullType(),
- T54 t54 = NullType(),
- T55 t55 = NullType(),
- T56 t56 = NullType(),
- T57 t57 = NullType(),
- T58 t58 = NullType(),
- T59 t59 = NullType(),
- T60 t60 = NullType(),
- T61 t61 = NullType(),
- T62 t62 = NullType(),
- T63 t63 = NullType(),
- T64 t64 = NullType(),
- T65 t65 = NullType(),
- T66 t66 = NullType(),
- T67 t67 = NullType(),
- T68 t68 = NullType(),
- T69 t69 = NullType(),
- T70 t70 = NullType(),
- T71 t71 = NullType(),
- T72 t72 = NullType(),
- T73 t73 = NullType(),
- T74 t74 = NullType(),
- T75 t75 = NullType(),
- T76 t76 = NullType(),
- T77 t77 = NullType(),
- T78 t78 = NullType(),
- T79 t79 = NullType(),
- T80 t80 = NullType(),
- T81 t81 = NullType(),
- T82 t82 = NullType(),
- T83 t83 = NullType(),
- T84 t84 = NullType(),
- T85 t85 = NullType(),
- T86 t86 = NullType(),
- T87 t87 = NullType(),
- T88 t88 = NullType(),
- T89 t89 = NullType(),
- T90 t90 = NullType(),
- T91 t91 = NullType(),
- T92 t92 = NullType(),
- T93 t93 = NullType(),
- T94 t94 = NullType(),
- T95 t95 = NullType(),
- T96 t96 = NullType(),
- T97 t97 = NullType(),
- T98 t98 = NullType(),
- T99 t99 = NullType(),
- T100 t100 = NullType(),
- T101 t101 = NullType(),
- T102 t102 = NullType(),
- T103 t103 = NullType(),
- T104 t104 = NullType(),
- T105 t105 = NullType(),
- T106 t106 = NullType(),
- T107 t107 = NullType(),
- T108 t108 = NullType(),
- T109 t109 = NullType(),
- T110 t110 = NullType(),
- T111 t111 = NullType(),
- T112 t112 = NullType(),
- T113 t113 = NullType(),
- T114 t114 = NullType(),
- T115 t115 = NullType(),
- T116 t116 = NullType(),
- T117 t117 = NullType(),
- T118 t118 = NullType(),
- T119 t119 = NullType(),
- T120 t120 = NullType(),
- T121 t121 = NullType(),
- T122 t122 = NullType(),
- T123 t123 = NullType(),
- T124 t124 = NullType(),
- T125 t125 = NullType(),
- T126 t126 = NullType(),
- T127 t127 = NullType())
+ T31 t31 = NullType()
+ )
{
Event event;
SetArg<0, T0>::set(kernel_, t0);
@@ -4545,1444 +6763,219 @@ public:
SetArg<29, T29>::set(kernel_, t29);
SetArg<30, T30>::set(kernel_, t30);
SetArg<31, T31>::set(kernel_, t31);
- SetArg<32, T32>::set(kernel_, t32);
- SetArg<33, T33>::set(kernel_, t33);
- SetArg<34, T34>::set(kernel_, t34);
- SetArg<35, T35>::set(kernel_, t35);
- SetArg<36, T36>::set(kernel_, t36);
- SetArg<37, T37>::set(kernel_, t37);
- SetArg<38, T38>::set(kernel_, t38);
- SetArg<39, T39>::set(kernel_, t39);
- SetArg<40, T40>::set(kernel_, t40);
- SetArg<41, T41>::set(kernel_, t41);
- SetArg<42, T42>::set(kernel_, t42);
- SetArg<43, T43>::set(kernel_, t43);
- SetArg<44, T44>::set(kernel_, t44);
- SetArg<45, T45>::set(kernel_, t45);
- SetArg<46, T46>::set(kernel_, t46);
- SetArg<47, T47>::set(kernel_, t47);
- SetArg<48, T48>::set(kernel_, t48);
- SetArg<49, T49>::set(kernel_, t49);
- SetArg<50, T50>::set(kernel_, t50);
- SetArg<51, T51>::set(kernel_, t51);
- SetArg<52, T52>::set(kernel_, t52);
- SetArg<53, T53>::set(kernel_, t53);
- SetArg<54, T54>::set(kernel_, t54);
- SetArg<55, T55>::set(kernel_, t55);
- SetArg<56, T56>::set(kernel_, t56);
- SetArg<57, T57>::set(kernel_, t57);
- SetArg<58, T58>::set(kernel_, t58);
- SetArg<59, T59>::set(kernel_, t59);
- SetArg<60, T60>::set(kernel_, t60);
- SetArg<61, T61>::set(kernel_, t61);
- SetArg<62, T62>::set(kernel_, t62);
- SetArg<63, T63>::set(kernel_, t63);
- SetArg<64, T64>::set(kernel_, t64);
- SetArg<65, T65>::set(kernel_, t65);
- SetArg<66, T66>::set(kernel_, t66);
- SetArg<67, T67>::set(kernel_, t67);
- SetArg<68, T68>::set(kernel_, t68);
- SetArg<69, T69>::set(kernel_, t69);
- SetArg<70, T70>::set(kernel_, t70);
- SetArg<71, T71>::set(kernel_, t71);
- SetArg<72, T72>::set(kernel_, t72);
- SetArg<73, T73>::set(kernel_, t73);
- SetArg<74, T74>::set(kernel_, t74);
- SetArg<75, T75>::set(kernel_, t75);
- SetArg<76, T76>::set(kernel_, t76);
- SetArg<77, T77>::set(kernel_, t77);
- SetArg<78, T78>::set(kernel_, t78);
- SetArg<79, T79>::set(kernel_, t79);
- SetArg<80, T80>::set(kernel_, t80);
- SetArg<81, T81>::set(kernel_, t81);
- SetArg<82, T82>::set(kernel_, t82);
- SetArg<83, T83>::set(kernel_, t83);
- SetArg<84, T84>::set(kernel_, t84);
- SetArg<85, T85>::set(kernel_, t85);
- SetArg<86, T86>::set(kernel_, t86);
- SetArg<87, T87>::set(kernel_, t87);
- SetArg<88, T88>::set(kernel_, t88);
- SetArg<89, T89>::set(kernel_, t89);
- SetArg<90, T90>::set(kernel_, t90);
- SetArg<91, T91>::set(kernel_, t91);
- SetArg<92, T92>::set(kernel_, t92);
- SetArg<93, T93>::set(kernel_, t93);
- SetArg<94, T94>::set(kernel_, t94);
- SetArg<95, T95>::set(kernel_, t95);
- SetArg<96, T96>::set(kernel_, t96);
- SetArg<97, T97>::set(kernel_, t97);
- SetArg<98, T98>::set(kernel_, t98);
- SetArg<99, T99>::set(kernel_, t99);
- SetArg<100, T100>::set(kernel_, t100);
- SetArg<101, T101>::set(kernel_, t101);
- SetArg<102, T102>::set(kernel_, t102);
- SetArg<103, T103>::set(kernel_, t103);
- SetArg<104, T104>::set(kernel_, t104);
- SetArg<105, T105>::set(kernel_, t105);
- SetArg<106, T106>::set(kernel_, t106);
- SetArg<107, T107>::set(kernel_, t107);
- SetArg<108, T108>::set(kernel_, t108);
- SetArg<109, T109>::set(kernel_, t109);
- SetArg<110, T110>::set(kernel_, t110);
- SetArg<111, T111>::set(kernel_, t111);
- SetArg<112, T112>::set(kernel_, t112);
- SetArg<113, T113>::set(kernel_, t113);
- SetArg<114, T114>::set(kernel_, t114);
- SetArg<115, T115>::set(kernel_, t115);
- SetArg<116, T116>::set(kernel_, t116);
- SetArg<117, T117>::set(kernel_, t117);
- SetArg<118, T118>::set(kernel_, t118);
- SetArg<119, T119>::set(kernel_, t119);
- SetArg<120, T120>::set(kernel_, t120);
- SetArg<121, T121>::set(kernel_, t121);
- SetArg<122, T122>::set(kernel_, t122);
- SetArg<123, T123>::set(kernel_, t123);
- SetArg<124, T124>::set(kernel_, t124);
- SetArg<125, T125>::set(kernel_, t125);
- SetArg<126, T126>::set(kernel_, t126);
- SetArg<127, T127>::set(kernel_, t127);
-
- // Move any arguments that need moving
- MoveToDevice<T0>::move(args.queue_, t0);
- MoveToDevice<T1>::move(args.queue_, t1);
- MoveToDevice<T2>::move(args.queue_, t2);
- MoveToDevice<T3>::move(args.queue_, t3);
- MoveToDevice<T4>::move(args.queue_, t4);
- MoveToDevice<T5>::move(args.queue_, t5);
- MoveToDevice<T6>::move(args.queue_, t6);
- MoveToDevice<T7>::move(args.queue_, t7);
- MoveToDevice<T8>::move(args.queue_, t8);
- MoveToDevice<T9>::move(args.queue_, t9);
- MoveToDevice<T10>::move(args.queue_, t10);
- MoveToDevice<T11>::move(args.queue_, t11);
- MoveToDevice<T12>::move(args.queue_, t12);
- MoveToDevice<T13>::move(args.queue_, t13);
- MoveToDevice<T14>::move(args.queue_, t14);
- MoveToDevice<T15>::move(args.queue_, t15);
- MoveToDevice<T16>::move(args.queue_, t16);
- MoveToDevice<T17>::move(args.queue_, t17);
- MoveToDevice<T18>::move(args.queue_, t18);
- MoveToDevice<T19>::move(args.queue_, t19);
- MoveToDevice<T20>::move(args.queue_, t20);
- MoveToDevice<T21>::move(args.queue_, t21);
- MoveToDevice<T22>::move(args.queue_, t22);
- MoveToDevice<T23>::move(args.queue_, t23);
- MoveToDevice<T24>::move(args.queue_, t24);
- MoveToDevice<T25>::move(args.queue_, t25);
- MoveToDevice<T26>::move(args.queue_, t26);
- MoveToDevice<T27>::move(args.queue_, t27);
- MoveToDevice<T28>::move(args.queue_, t28);
- MoveToDevice<T29>::move(args.queue_, t29);
- MoveToDevice<T30>::move(args.queue_, t30);
- MoveToDevice<T31>::move(args.queue_, t31);
- MoveToDevice<T32>::move(args.queue_, t32);
- MoveToDevice<T33>::move(args.queue_, t33);
- MoveToDevice<T34>::move(args.queue_, t34);
- MoveToDevice<T35>::move(args.queue_, t35);
- MoveToDevice<T36>::move(args.queue_, t36);
- MoveToDevice<T37>::move(args.queue_, t37);
- MoveToDevice<T38>::move(args.queue_, t38);
- MoveToDevice<T39>::move(args.queue_, t39);
- MoveToDevice<T40>::move(args.queue_, t40);
- MoveToDevice<T41>::move(args.queue_, t41);
- MoveToDevice<T42>::move(args.queue_, t42);
- MoveToDevice<T43>::move(args.queue_, t43);
- MoveToDevice<T44>::move(args.queue_, t44);
- MoveToDevice<T45>::move(args.queue_, t45);
- MoveToDevice<T46>::move(args.queue_, t46);
- MoveToDevice<T47>::move(args.queue_, t47);
- MoveToDevice<T48>::move(args.queue_, t48);
- MoveToDevice<T49>::move(args.queue_, t49);
- MoveToDevice<T50>::move(args.queue_, t50);
- MoveToDevice<T51>::move(args.queue_, t51);
- MoveToDevice<T52>::move(args.queue_, t52);
- MoveToDevice<T53>::move(args.queue_, t53);
- MoveToDevice<T54>::move(args.queue_, t54);
- MoveToDevice<T55>::move(args.queue_, t55);
- MoveToDevice<T56>::move(args.queue_, t56);
- MoveToDevice<T57>::move(args.queue_, t57);
- MoveToDevice<T58>::move(args.queue_, t58);
- MoveToDevice<T59>::move(args.queue_, t59);
- MoveToDevice<T60>::move(args.queue_, t60);
- MoveToDevice<T61>::move(args.queue_, t61);
- MoveToDevice<T62>::move(args.queue_, t62);
- MoveToDevice<T63>::move(args.queue_, t63);
- MoveToDevice<T64>::move(args.queue_, t64);
- MoveToDevice<T65>::move(args.queue_, t65);
- MoveToDevice<T66>::move(args.queue_, t66);
- MoveToDevice<T67>::move(args.queue_, t67);
- MoveToDevice<T68>::move(args.queue_, t68);
- MoveToDevice<T69>::move(args.queue_, t69);
- MoveToDevice<T70>::move(args.queue_, t70);
- MoveToDevice<T71>::move(args.queue_, t71);
- MoveToDevice<T72>::move(args.queue_, t72);
- MoveToDevice<T73>::move(args.queue_, t73);
- MoveToDevice<T74>::move(args.queue_, t74);
- MoveToDevice<T75>::move(args.queue_, t75);
- MoveToDevice<T76>::move(args.queue_, t76);
- MoveToDevice<T77>::move(args.queue_, t77);
- MoveToDevice<T78>::move(args.queue_, t78);
- MoveToDevice<T79>::move(args.queue_, t79);
- MoveToDevice<T80>::move(args.queue_, t80);
- MoveToDevice<T81>::move(args.queue_, t81);
- MoveToDevice<T82>::move(args.queue_, t82);
- MoveToDevice<T83>::move(args.queue_, t83);
- MoveToDevice<T84>::move(args.queue_, t84);
- MoveToDevice<T85>::move(args.queue_, t85);
- MoveToDevice<T86>::move(args.queue_, t86);
- MoveToDevice<T87>::move(args.queue_, t87);
- MoveToDevice<T88>::move(args.queue_, t88);
- MoveToDevice<T89>::move(args.queue_, t89);
- MoveToDevice<T90>::move(args.queue_, t90);
- MoveToDevice<T91>::move(args.queue_, t91);
- MoveToDevice<T92>::move(args.queue_, t92);
- MoveToDevice<T93>::move(args.queue_, t93);
- MoveToDevice<T94>::move(args.queue_, t94);
- MoveToDevice<T95>::move(args.queue_, t95);
- MoveToDevice<T96>::move(args.queue_, t96);
- MoveToDevice<T97>::move(args.queue_, t97);
- MoveToDevice<T98>::move(args.queue_, t98);
- MoveToDevice<T99>::move(args.queue_, t99);
- MoveToDevice<T100>::move(args.queue_, t100);
- MoveToDevice<T101>::move(args.queue_, t101);
- MoveToDevice<T102>::move(args.queue_, t102);
- MoveToDevice<T103>::move(args.queue_, t103);
- MoveToDevice<T104>::move(args.queue_, t104);
- MoveToDevice<T105>::move(args.queue_, t105);
- MoveToDevice<T106>::move(args.queue_, t106);
- MoveToDevice<T107>::move(args.queue_, t107);
- MoveToDevice<T108>::move(args.queue_, t108);
- MoveToDevice<T109>::move(args.queue_, t109);
- MoveToDevice<T110>::move(args.queue_, t110);
- MoveToDevice<T111>::move(args.queue_, t111);
- MoveToDevice<T112>::move(args.queue_, t112);
- MoveToDevice<T113>::move(args.queue_, t113);
- MoveToDevice<T114>::move(args.queue_, t114);
- MoveToDevice<T115>::move(args.queue_, t115);
- MoveToDevice<T116>::move(args.queue_, t116);
- MoveToDevice<T117>::move(args.queue_, t117);
- MoveToDevice<T118>::move(args.queue_, t118);
- MoveToDevice<T119>::move(args.queue_, t119);
- MoveToDevice<T120>::move(args.queue_, t120);
- MoveToDevice<T121>::move(args.queue_, t121);
- MoveToDevice<T122>::move(args.queue_, t122);
- MoveToDevice<T123>::move(args.queue_, t123);
- MoveToDevice<T124>::move(args.queue_, t124);
- MoveToDevice<T125>::move(args.queue_, t125);
- MoveToDevice<T126>::move(args.queue_, t126);
- MoveToDevice<T127>::move(args.queue_, t127);
+
args.queue_.enqueueNDRangeKernel(
kernel_,
args.offset_,
args.global_,
args.local_,
- NULL,
+ &args.events_,
&event);
-
- // Move any arguments that need moving
- MoveFromDevice<T0>::move(args.queue_, t0);
- MoveFromDevice<T1>::move(args.queue_, t1);
- MoveFromDevice<T2>::move(args.queue_, t2);
- MoveFromDevice<T3>::move(args.queue_, t3);
- MoveFromDevice<T4>::move(args.queue_, t4);
- MoveFromDevice<T5>::move(args.queue_, t5);
- MoveFromDevice<T6>::move(args.queue_, t6);
- MoveFromDevice<T7>::move(args.queue_, t7);
- MoveFromDevice<T8>::move(args.queue_, t8);
- MoveFromDevice<T9>::move(args.queue_, t9);
- MoveFromDevice<T10>::move(args.queue_, t10);
- MoveFromDevice<T11>::move(args.queue_, t11);
- MoveFromDevice<T12>::move(args.queue_, t12);
- MoveFromDevice<T13>::move(args.queue_, t13);
- MoveFromDevice<T14>::move(args.queue_, t14);
- MoveFromDevice<T15>::move(args.queue_, t15);
- MoveFromDevice<T16>::move(args.queue_, t16);
- MoveFromDevice<T17>::move(args.queue_, t17);
- MoveFromDevice<T18>::move(args.queue_, t18);
- MoveFromDevice<T19>::move(args.queue_, t19);
- MoveFromDevice<T20>::move(args.queue_, t20);
- MoveFromDevice<T21>::move(args.queue_, t21);
- MoveFromDevice<T22>::move(args.queue_, t22);
- MoveFromDevice<T23>::move(args.queue_, t23);
- MoveFromDevice<T24>::move(args.queue_, t24);
- MoveFromDevice<T25>::move(args.queue_, t25);
- MoveFromDevice<T26>::move(args.queue_, t26);
- MoveFromDevice<T27>::move(args.queue_, t27);
- MoveFromDevice<T28>::move(args.queue_, t28);
- MoveFromDevice<T29>::move(args.queue_, t29);
- MoveFromDevice<T30>::move(args.queue_, t30);
- MoveFromDevice<T31>::move(args.queue_, t31);
- MoveFromDevice<T32>::move(args.queue_, t32);
- MoveFromDevice<T33>::move(args.queue_, t33);
- MoveFromDevice<T34>::move(args.queue_, t34);
- MoveFromDevice<T35>::move(args.queue_, t35);
- MoveFromDevice<T36>::move(args.queue_, t36);
- MoveFromDevice<T37>::move(args.queue_, t37);
- MoveFromDevice<T38>::move(args.queue_, t38);
- MoveFromDevice<T39>::move(args.queue_, t39);
- MoveFromDevice<T40>::move(args.queue_, t40);
- MoveFromDevice<T41>::move(args.queue_, t41);
- MoveFromDevice<T42>::move(args.queue_, t42);
- MoveFromDevice<T43>::move(args.queue_, t43);
- MoveFromDevice<T44>::move(args.queue_, t44);
- MoveFromDevice<T45>::move(args.queue_, t45);
- MoveFromDevice<T46>::move(args.queue_, t46);
- MoveFromDevice<T47>::move(args.queue_, t47);
- MoveFromDevice<T48>::move(args.queue_, t48);
- MoveFromDevice<T49>::move(args.queue_, t49);
- MoveFromDevice<T50>::move(args.queue_, t50);
- MoveFromDevice<T51>::move(args.queue_, t51);
- MoveFromDevice<T52>::move(args.queue_, t52);
- MoveFromDevice<T53>::move(args.queue_, t53);
- MoveFromDevice<T54>::move(args.queue_, t54);
- MoveFromDevice<T55>::move(args.queue_, t55);
- MoveFromDevice<T56>::move(args.queue_, t56);
- MoveFromDevice<T57>::move(args.queue_, t57);
- MoveFromDevice<T58>::move(args.queue_, t58);
- MoveFromDevice<T59>::move(args.queue_, t59);
- MoveFromDevice<T60>::move(args.queue_, t60);
- MoveFromDevice<T61>::move(args.queue_, t61);
- MoveFromDevice<T62>::move(args.queue_, t62);
- MoveFromDevice<T63>::move(args.queue_, t63);
- MoveFromDevice<T64>::move(args.queue_, t64);
- MoveFromDevice<T65>::move(args.queue_, t65);
- MoveFromDevice<T66>::move(args.queue_, t66);
- MoveFromDevice<T67>::move(args.queue_, t67);
- MoveFromDevice<T68>::move(args.queue_, t68);
- MoveFromDevice<T69>::move(args.queue_, t69);
- MoveFromDevice<T70>::move(args.queue_, t70);
- MoveFromDevice<T71>::move(args.queue_, t71);
- MoveFromDevice<T72>::move(args.queue_, t72);
- MoveFromDevice<T73>::move(args.queue_, t73);
- MoveFromDevice<T74>::move(args.queue_, t74);
- MoveFromDevice<T75>::move(args.queue_, t75);
- MoveFromDevice<T76>::move(args.queue_, t76);
- MoveFromDevice<T77>::move(args.queue_, t77);
- MoveFromDevice<T78>::move(args.queue_, t78);
- MoveFromDevice<T79>::move(args.queue_, t79);
- MoveFromDevice<T80>::move(args.queue_, t80);
- MoveFromDevice<T81>::move(args.queue_, t81);
- MoveFromDevice<T82>::move(args.queue_, t82);
- MoveFromDevice<T83>::move(args.queue_, t83);
- MoveFromDevice<T84>::move(args.queue_, t84);
- MoveFromDevice<T85>::move(args.queue_, t85);
- MoveFromDevice<T86>::move(args.queue_, t86);
- MoveFromDevice<T87>::move(args.queue_, t87);
- MoveFromDevice<T88>::move(args.queue_, t88);
- MoveFromDevice<T89>::move(args.queue_, t89);
- MoveFromDevice<T90>::move(args.queue_, t90);
- MoveFromDevice<T91>::move(args.queue_, t91);
- MoveFromDevice<T92>::move(args.queue_, t92);
- MoveFromDevice<T93>::move(args.queue_, t93);
- MoveFromDevice<T94>::move(args.queue_, t94);
- MoveFromDevice<T95>::move(args.queue_, t95);
- MoveFromDevice<T96>::move(args.queue_, t96);
- MoveFromDevice<T97>::move(args.queue_, t97);
- MoveFromDevice<T98>::move(args.queue_, t98);
- MoveFromDevice<T99>::move(args.queue_, t99);
- MoveFromDevice<T100>::move(args.queue_, t100);
- MoveFromDevice<T101>::move(args.queue_, t101);
- MoveFromDevice<T102>::move(args.queue_, t102);
- MoveFromDevice<T103>::move(args.queue_, t103);
- MoveFromDevice<T104>::move(args.queue_, t104);
- MoveFromDevice<T105>::move(args.queue_, t105);
- MoveFromDevice<T106>::move(args.queue_, t106);
- MoveFromDevice<T107>::move(args.queue_, t107);
- MoveFromDevice<T108>::move(args.queue_, t108);
- MoveFromDevice<T109>::move(args.queue_, t109);
- MoveFromDevice<T110>::move(args.queue_, t110);
- MoveFromDevice<T111>::move(args.queue_, t111);
- MoveFromDevice<T112>::move(args.queue_, t112);
- MoveFromDevice<T113>::move(args.queue_, t113);
- MoveFromDevice<T114>::move(args.queue_, t114);
- MoveFromDevice<T115>::move(args.queue_, t115);
- MoveFromDevice<T116>::move(args.queue_, t116);
- MoveFromDevice<T117>::move(args.queue_, t117);
- MoveFromDevice<T118>::move(args.queue_, t118);
- MoveFromDevice<T119>::move(args.queue_, t119);
- MoveFromDevice<T120>::move(args.queue_, t120);
- MoveFromDevice<T121>::move(args.queue_, t121);
- MoveFromDevice<T122>::move(args.queue_, t122);
- MoveFromDevice<T123>::move(args.queue_, t123);
- MoveFromDevice<T124>::move(args.queue_, t124);
- MoveFromDevice<T125>::move(args.queue_, t125);
- MoveFromDevice<T126>::move(args.queue_, t126);
- MoveFromDevice<T127>::move(args.queue_, t127);
+
return event;
}
- Event operator() (
- const EnqueueArgs& args,
- const Event& waitEvent,
- T0 t0,
- T1 t1 = NullType(),
- T2 t2 = NullType(),
- T3 t3 = NullType(),
- T4 t4 = NullType(),
- T5 t5 = NullType(),
- T6 t6 = NullType(),
- T7 t7 = NullType(),
- T8 t8 = NullType(),
- T9 t9 = NullType(),
- T10 t10 = NullType(),
- T11 t11 = NullType(),
- T12 t12 = NullType(),
- T13 t13 = NullType(),
- T14 t14 = NullType(),
- T15 t15 = NullType(),
- T16 t16 = NullType(),
- T17 t17 = NullType(),
- T18 t18 = NullType(),
- T19 t19 = NullType(),
- T20 t20 = NullType(),
- T21 t21 = NullType(),
- T22 t22 = NullType(),
- T23 t23 = NullType(),
- T24 t24 = NullType(),
- T25 t25 = NullType(),
- T26 t26 = NullType(),
- T27 t27 = NullType(),
- T28 t28 = NullType(),
- T29 t29 = NullType(),
- T30 t30 = NullType(),
- T31 t31 = NullType(),
- T32 t32 = NullType(),
- T33 t33 = NullType(),
- T34 t34 = NullType(),
- T35 t35 = NullType(),
- T36 t36 = NullType(),
- T37 t37 = NullType(),
- T38 t38 = NullType(),
- T39 t39 = NullType(),
- T40 t40 = NullType(),
- T41 t41 = NullType(),
- T42 t42 = NullType(),
- T43 t43 = NullType(),
- T44 t44 = NullType(),
- T45 t45 = NullType(),
- T46 t46 = NullType(),
- T47 t47 = NullType(),
- T48 t48 = NullType(),
- T49 t49 = NullType(),
- T50 t50 = NullType(),
- T51 t51 = NullType(),
- T52 t52 = NullType(),
- T53 t53 = NullType(),
- T54 t54 = NullType(),
- T55 t55 = NullType(),
- T56 t56 = NullType(),
- T57 t57 = NullType(),
- T58 t58 = NullType(),
- T59 t59 = NullType(),
- T60 t60 = NullType(),
- T61 t61 = NullType(),
- T62 t62 = NullType(),
- T63 t63 = NullType(),
- T64 t64 = NullType(),
- T65 t65 = NullType(),
- T66 t66 = NullType(),
- T67 t67 = NullType(),
- T68 t68 = NullType(),
- T69 t69 = NullType(),
- T70 t70 = NullType(),
- T71 t71 = NullType(),
- T72 t72 = NullType(),
- T73 t73 = NullType(),
- T74 t74 = NullType(),
- T75 t75 = NullType(),
- T76 t76 = NullType(),
- T77 t77 = NullType(),
- T78 t78 = NullType(),
- T79 t79 = NullType(),
- T80 t80 = NullType(),
- T81 t81 = NullType(),
- T82 t82 = NullType(),
- T83 t83 = NullType(),
- T84 t84 = NullType(),
- T85 t85 = NullType(),
- T86 t86 = NullType(),
- T87 t87 = NullType(),
- T88 t88 = NullType(),
- T89 t89 = NullType(),
- T90 t90 = NullType(),
- T91 t91 = NullType(),
- T92 t92 = NullType(),
- T93 t93 = NullType(),
- T94 t94 = NullType(),
- T95 t95 = NullType(),
- T96 t96 = NullType(),
- T97 t97 = NullType(),
- T98 t98 = NullType(),
- T99 t99 = NullType(),
- T100 t100 = NullType(),
- T101 t101 = NullType(),
- T102 t102 = NullType(),
- T103 t103 = NullType(),
- T104 t104 = NullType(),
- T105 t105 = NullType(),
- T106 t106 = NullType(),
- T107 t107 = NullType(),
- T108 t108 = NullType(),
- T109 t109 = NullType(),
- T110 t110 = NullType(),
- T111 t111 = NullType(),
- T112 t112 = NullType(),
- T113 t113 = NullType(),
- T114 t114 = NullType(),
- T115 t115 = NullType(),
- T116 t116 = NullType(),
- T117 t117 = NullType(),
- T118 t118 = NullType(),
- T119 t119 = NullType(),
- T120 t120 = NullType(),
- T121 t121 = NullType(),
- T122 t122 = NullType(),
- T123 t123 = NullType(),
- T124 t124 = NullType(),
- T125 t125 = NullType(),
- T126 t126 = NullType(),
- T127 t127 = NullType())
- {
- Event event;
- SetArg<0, T0>::set(kernel_, t0);
- SetArg<1, T1>::set(kernel_, t1);
- SetArg<2, T2>::set(kernel_, t2);
- SetArg<3, T3>::set(kernel_, t3);
- SetArg<4, T4>::set(kernel_, t4);
- SetArg<5, T5>::set(kernel_, t5);
- SetArg<6, T6>::set(kernel_, t6);
- SetArg<7, T7>::set(kernel_, t7);
- SetArg<8, T8>::set(kernel_, t8);
- SetArg<9, T9>::set(kernel_, t9);
- SetArg<10, T10>::set(kernel_, t10);
- SetArg<11, T11>::set(kernel_, t11);
- SetArg<12, T12>::set(kernel_, t12);
- SetArg<13, T13>::set(kernel_, t13);
- SetArg<14, T14>::set(kernel_, t14);
- SetArg<15, T15>::set(kernel_, t15);
- SetArg<16, T16>::set(kernel_, t16);
- SetArg<17, T17>::set(kernel_, t17);
- SetArg<18, T18>::set(kernel_, t18);
- SetArg<19, T19>::set(kernel_, t19);
- SetArg<20, T20>::set(kernel_, t20);
- SetArg<21, T21>::set(kernel_, t21);
- SetArg<22, T22>::set(kernel_, t22);
- SetArg<23, T23>::set(kernel_, t23);
- SetArg<24, T24>::set(kernel_, t24);
- SetArg<25, T25>::set(kernel_, t25);
- SetArg<26, T26>::set(kernel_, t26);
- SetArg<27, T27>::set(kernel_, t27);
- SetArg<28, T28>::set(kernel_, t28);
- SetArg<29, T29>::set(kernel_, t29);
- SetArg<30, T30>::set(kernel_, t30);
- SetArg<31, T31>::set(kernel_, t31);
- SetArg<32, T32>::set(kernel_, t32);
- SetArg<33, T33>::set(kernel_, t33);
- SetArg<34, T34>::set(kernel_, t34);
- SetArg<35, T35>::set(kernel_, t35);
- SetArg<36, T36>::set(kernel_, t36);
- SetArg<37, T37>::set(kernel_, t37);
- SetArg<38, T38>::set(kernel_, t38);
- SetArg<39, T39>::set(kernel_, t39);
- SetArg<40, T40>::set(kernel_, t40);
- SetArg<41, T41>::set(kernel_, t41);
- SetArg<42, T42>::set(kernel_, t42);
- SetArg<43, T43>::set(kernel_, t43);
- SetArg<44, T44>::set(kernel_, t44);
- SetArg<45, T45>::set(kernel_, t45);
- SetArg<46, T46>::set(kernel_, t46);
- SetArg<47, T47>::set(kernel_, t47);
- SetArg<48, T48>::set(kernel_, t48);
- SetArg<49, T49>::set(kernel_, t49);
- SetArg<50, T50>::set(kernel_, t50);
- SetArg<51, T51>::set(kernel_, t51);
- SetArg<52, T52>::set(kernel_, t52);
- SetArg<53, T53>::set(kernel_, t53);
- SetArg<54, T54>::set(kernel_, t54);
- SetArg<55, T55>::set(kernel_, t55);
- SetArg<56, T56>::set(kernel_, t56);
- SetArg<57, T57>::set(kernel_, t57);
- SetArg<58, T58>::set(kernel_, t58);
- SetArg<59, T59>::set(kernel_, t59);
- SetArg<60, T60>::set(kernel_, t60);
- SetArg<61, T61>::set(kernel_, t61);
- SetArg<62, T62>::set(kernel_, t62);
- SetArg<63, T63>::set(kernel_, t63);
- SetArg<64, T64>::set(kernel_, t64);
- SetArg<65, T65>::set(kernel_, t65);
- SetArg<66, T66>::set(kernel_, t66);
- SetArg<67, T67>::set(kernel_, t67);
- SetArg<68, T68>::set(kernel_, t68);
- SetArg<69, T69>::set(kernel_, t69);
- SetArg<70, T70>::set(kernel_, t70);
- SetArg<71, T71>::set(kernel_, t71);
- SetArg<72, T72>::set(kernel_, t72);
- SetArg<73, T73>::set(kernel_, t73);
- SetArg<74, T74>::set(kernel_, t74);
- SetArg<75, T75>::set(kernel_, t75);
- SetArg<76, T76>::set(kernel_, t76);
- SetArg<77, T77>::set(kernel_, t77);
- SetArg<78, T78>::set(kernel_, t78);
- SetArg<79, T79>::set(kernel_, t79);
- SetArg<80, T80>::set(kernel_, t80);
- SetArg<81, T81>::set(kernel_, t81);
- SetArg<82, T82>::set(kernel_, t82);
- SetArg<83, T83>::set(kernel_, t83);
- SetArg<84, T84>::set(kernel_, t84);
- SetArg<85, T85>::set(kernel_, t85);
- SetArg<86, T86>::set(kernel_, t86);
- SetArg<87, T87>::set(kernel_, t87);
- SetArg<88, T88>::set(kernel_, t88);
- SetArg<89, T89>::set(kernel_, t89);
- SetArg<90, T90>::set(kernel_, t90);
- SetArg<91, T91>::set(kernel_, t91);
- SetArg<92, T92>::set(kernel_, t92);
- SetArg<93, T93>::set(kernel_, t93);
- SetArg<94, T94>::set(kernel_, t94);
- SetArg<95, T95>::set(kernel_, t95);
- SetArg<96, T96>::set(kernel_, t96);
- SetArg<97, T97>::set(kernel_, t97);
- SetArg<98, T98>::set(kernel_, t98);
- SetArg<99, T99>::set(kernel_, t99);
- SetArg<100, T100>::set(kernel_, t100);
- SetArg<101, T101>::set(kernel_, t101);
- SetArg<102, T102>::set(kernel_, t102);
- SetArg<103, T103>::set(kernel_, t103);
- SetArg<104, T104>::set(kernel_, t104);
- SetArg<105, T105>::set(kernel_, t105);
- SetArg<106, T106>::set(kernel_, t106);
- SetArg<107, T107>::set(kernel_, t107);
- SetArg<108, T108>::set(kernel_, t108);
- SetArg<109, T109>::set(kernel_, t109);
- SetArg<110, T110>::set(kernel_, t110);
- SetArg<111, T111>::set(kernel_, t111);
- SetArg<112, T112>::set(kernel_, t112);
- SetArg<113, T113>::set(kernel_, t113);
- SetArg<114, T114>::set(kernel_, t114);
- SetArg<115, T115>::set(kernel_, t115);
- SetArg<116, T116>::set(kernel_, t116);
- SetArg<117, T117>::set(kernel_, t117);
- SetArg<118, T118>::set(kernel_, t118);
- SetArg<119, T119>::set(kernel_, t119);
- SetArg<120, T120>::set(kernel_, t120);
- SetArg<121, T121>::set(kernel_, t121);
- SetArg<122, T122>::set(kernel_, t122);
- SetArg<123, T123>::set(kernel_, t123);
- SetArg<124, T124>::set(kernel_, t124);
- SetArg<125, T125>::set(kernel_, t125);
- SetArg<126, T126>::set(kernel_, t126);
- SetArg<127, T127>::set(kernel_, t127);
-
- // Move any arguments that need moving
- MoveToDevice<T0>::move(args.queue_, t0);
- MoveToDevice<T1>::move(args.queue_, t1);
- MoveToDevice<T2>::move(args.queue_, t2);
- MoveToDevice<T3>::move(args.queue_, t3);
- MoveToDevice<T4>::move(args.queue_, t4);
- MoveToDevice<T5>::move(args.queue_, t5);
- MoveToDevice<T6>::move(args.queue_, t6);
- MoveToDevice<T7>::move(args.queue_, t7);
- MoveToDevice<T8>::move(args.queue_, t8);
- MoveToDevice<T9>::move(args.queue_, t9);
- MoveToDevice<T10>::move(args.queue_, t10);
- MoveToDevice<T11>::move(args.queue_, t11);
- MoveToDevice<T12>::move(args.queue_, t12);
- MoveToDevice<T13>::move(args.queue_, t13);
- MoveToDevice<T14>::move(args.queue_, t14);
- MoveToDevice<T15>::move(args.queue_, t15);
- MoveToDevice<T16>::move(args.queue_, t16);
- MoveToDevice<T17>::move(args.queue_, t17);
- MoveToDevice<T18>::move(args.queue_, t18);
- MoveToDevice<T19>::move(args.queue_, t19);
- MoveToDevice<T20>::move(args.queue_, t20);
- MoveToDevice<T21>::move(args.queue_, t21);
- MoveToDevice<T22>::move(args.queue_, t22);
- MoveToDevice<T23>::move(args.queue_, t23);
- MoveToDevice<T24>::move(args.queue_, t24);
- MoveToDevice<T25>::move(args.queue_, t25);
- MoveToDevice<T26>::move(args.queue_, t26);
- MoveToDevice<T27>::move(args.queue_, t27);
- MoveToDevice<T28>::move(args.queue_, t28);
- MoveToDevice<T29>::move(args.queue_, t29);
- MoveToDevice<T30>::move(args.queue_, t30);
- MoveToDevice<T31>::move(args.queue_, t31);
- MoveToDevice<T32>::move(args.queue_, t32);
- MoveToDevice<T33>::move(args.queue_, t33);
- MoveToDevice<T34>::move(args.queue_, t34);
- MoveToDevice<T35>::move(args.queue_, t35);
- MoveToDevice<T36>::move(args.queue_, t36);
- MoveToDevice<T37>::move(args.queue_, t37);
- MoveToDevice<T38>::move(args.queue_, t38);
- MoveToDevice<T39>::move(args.queue_, t39);
- MoveToDevice<T40>::move(args.queue_, t40);
- MoveToDevice<T41>::move(args.queue_, t41);
- MoveToDevice<T42>::move(args.queue_, t42);
- MoveToDevice<T43>::move(args.queue_, t43);
- MoveToDevice<T44>::move(args.queue_, t44);
- MoveToDevice<T45>::move(args.queue_, t45);
- MoveToDevice<T46>::move(args.queue_, t46);
- MoveToDevice<T47>::move(args.queue_, t47);
- MoveToDevice<T48>::move(args.queue_, t48);
- MoveToDevice<T49>::move(args.queue_, t49);
- MoveToDevice<T50>::move(args.queue_, t50);
- MoveToDevice<T51>::move(args.queue_, t51);
- MoveToDevice<T52>::move(args.queue_, t52);
- MoveToDevice<T53>::move(args.queue_, t53);
- MoveToDevice<T54>::move(args.queue_, t54);
- MoveToDevice<T55>::move(args.queue_, t55);
- MoveToDevice<T56>::move(args.queue_, t56);
- MoveToDevice<T57>::move(args.queue_, t57);
- MoveToDevice<T58>::move(args.queue_, t58);
- MoveToDevice<T59>::move(args.queue_, t59);
- MoveToDevice<T60>::move(args.queue_, t60);
- MoveToDevice<T61>::move(args.queue_, t61);
- MoveToDevice<T62>::move(args.queue_, t62);
- MoveToDevice<T63>::move(args.queue_, t63);
- MoveToDevice<T64>::move(args.queue_, t64);
- MoveToDevice<T65>::move(args.queue_, t65);
- MoveToDevice<T66>::move(args.queue_, t66);
- MoveToDevice<T67>::move(args.queue_, t67);
- MoveToDevice<T68>::move(args.queue_, t68);
- MoveToDevice<T69>::move(args.queue_, t69);
- MoveToDevice<T70>::move(args.queue_, t70);
- MoveToDevice<T71>::move(args.queue_, t71);
- MoveToDevice<T72>::move(args.queue_, t72);
- MoveToDevice<T73>::move(args.queue_, t73);
- MoveToDevice<T74>::move(args.queue_, t74);
- MoveToDevice<T75>::move(args.queue_, t75);
- MoveToDevice<T76>::move(args.queue_, t76);
- MoveToDevice<T77>::move(args.queue_, t77);
- MoveToDevice<T78>::move(args.queue_, t78);
- MoveToDevice<T79>::move(args.queue_, t79);
- MoveToDevice<T80>::move(args.queue_, t80);
- MoveToDevice<T81>::move(args.queue_, t81);
- MoveToDevice<T82>::move(args.queue_, t82);
- MoveToDevice<T83>::move(args.queue_, t83);
- MoveToDevice<T84>::move(args.queue_, t84);
- MoveToDevice<T85>::move(args.queue_, t85);
- MoveToDevice<T86>::move(args.queue_, t86);
- MoveToDevice<T87>::move(args.queue_, t87);
- MoveToDevice<T88>::move(args.queue_, t88);
- MoveToDevice<T89>::move(args.queue_, t89);
- MoveToDevice<T90>::move(args.queue_, t90);
- MoveToDevice<T91>::move(args.queue_, t91);
- MoveToDevice<T92>::move(args.queue_, t92);
- MoveToDevice<T93>::move(args.queue_, t93);
- MoveToDevice<T94>::move(args.queue_, t94);
- MoveToDevice<T95>::move(args.queue_, t95);
- MoveToDevice<T96>::move(args.queue_, t96);
- MoveToDevice<T97>::move(args.queue_, t97);
- MoveToDevice<T98>::move(args.queue_, t98);
- MoveToDevice<T99>::move(args.queue_, t99);
- MoveToDevice<T100>::move(args.queue_, t100);
- MoveToDevice<T101>::move(args.queue_, t101);
- MoveToDevice<T102>::move(args.queue_, t102);
- MoveToDevice<T103>::move(args.queue_, t103);
- MoveToDevice<T104>::move(args.queue_, t104);
- MoveToDevice<T105>::move(args.queue_, t105);
- MoveToDevice<T106>::move(args.queue_, t106);
- MoveToDevice<T107>::move(args.queue_, t107);
- MoveToDevice<T108>::move(args.queue_, t108);
- MoveToDevice<T109>::move(args.queue_, t109);
- MoveToDevice<T110>::move(args.queue_, t110);
- MoveToDevice<T111>::move(args.queue_, t111);
- MoveToDevice<T112>::move(args.queue_, t112);
- MoveToDevice<T113>::move(args.queue_, t113);
- MoveToDevice<T114>::move(args.queue_, t114);
- MoveToDevice<T115>::move(args.queue_, t115);
- MoveToDevice<T116>::move(args.queue_, t116);
- MoveToDevice<T117>::move(args.queue_, t117);
- MoveToDevice<T118>::move(args.queue_, t118);
- MoveToDevice<T119>::move(args.queue_, t119);
- MoveToDevice<T120>::move(args.queue_, t120);
- MoveToDevice<T121>::move(args.queue_, t121);
- MoveToDevice<T122>::move(args.queue_, t122);
- MoveToDevice<T123>::move(args.queue_, t123);
- MoveToDevice<T124>::move(args.queue_, t124);
- MoveToDevice<T125>::move(args.queue_, t125);
- MoveToDevice<T126>::move(args.queue_, t126);
- MoveToDevice<T127>::move(args.queue_, t127);
-
- VECTOR_CLASS<Event> events(&waitEvent, &waitEvent);
+};
- args.queue_.enqueueNDRangeKernel(
- kernel_,
- args.offset_,
- args.global_,
- args.local_,
- &events,
- &event);
+//------------------------------------------------------------------------------------------------------
- // Move any arguments that need moving
- MoveFromDevice<T0>::move(args.queue_, t0);
- MoveFromDevice<T1>::move(args.queue_, t1);
- MoveFromDevice<T2>::move(args.queue_, t2);
- MoveFromDevice<T3>::move(args.queue_, t3);
- MoveFromDevice<T4>::move(args.queue_, t4);
- MoveFromDevice<T5>::move(args.queue_, t5);
- MoveFromDevice<T6>::move(args.queue_, t6);
- MoveFromDevice<T7>::move(args.queue_, t7);
- MoveFromDevice<T8>::move(args.queue_, t8);
- MoveFromDevice<T9>::move(args.queue_, t9);
- MoveFromDevice<T10>::move(args.queue_, t10);
- MoveFromDevice<T11>::move(args.queue_, t11);
- MoveFromDevice<T12>::move(args.queue_, t12);
- MoveFromDevice<T13>::move(args.queue_, t13);
- MoveFromDevice<T14>::move(args.queue_, t14);
- MoveFromDevice<T15>::move(args.queue_, t15);
- MoveFromDevice<T16>::move(args.queue_, t16);
- MoveFromDevice<T17>::move(args.queue_, t17);
- MoveFromDevice<T18>::move(args.queue_, t18);
- MoveFromDevice<T19>::move(args.queue_, t19);
- MoveFromDevice<T20>::move(args.queue_, t20);
- MoveFromDevice<T21>::move(args.queue_, t21);
- MoveFromDevice<T22>::move(args.queue_, t22);
- MoveFromDevice<T23>::move(args.queue_, t23);
- MoveFromDevice<T24>::move(args.queue_, t24);
- MoveFromDevice<T25>::move(args.queue_, t25);
- MoveFromDevice<T26>::move(args.queue_, t26);
- MoveFromDevice<T27>::move(args.queue_, t27);
- MoveFromDevice<T28>::move(args.queue_, t28);
- MoveFromDevice<T29>::move(args.queue_, t29);
- MoveFromDevice<T30>::move(args.queue_, t30);
- MoveFromDevice<T31>::move(args.queue_, t31);
- MoveFromDevice<T32>::move(args.queue_, t32);
- MoveFromDevice<T33>::move(args.queue_, t33);
- MoveFromDevice<T34>::move(args.queue_, t34);
- MoveFromDevice<T35>::move(args.queue_, t35);
- MoveFromDevice<T36>::move(args.queue_, t36);
- MoveFromDevice<T37>::move(args.queue_, t37);
- MoveFromDevice<T38>::move(args.queue_, t38);
- MoveFromDevice<T39>::move(args.queue_, t39);
- MoveFromDevice<T40>::move(args.queue_, t40);
- MoveFromDevice<T41>::move(args.queue_, t41);
- MoveFromDevice<T42>::move(args.queue_, t42);
- MoveFromDevice<T43>::move(args.queue_, t43);
- MoveFromDevice<T44>::move(args.queue_, t44);
- MoveFromDevice<T45>::move(args.queue_, t45);
- MoveFromDevice<T46>::move(args.queue_, t46);
- MoveFromDevice<T47>::move(args.queue_, t47);
- MoveFromDevice<T48>::move(args.queue_, t48);
- MoveFromDevice<T49>::move(args.queue_, t49);
- MoveFromDevice<T50>::move(args.queue_, t50);
- MoveFromDevice<T51>::move(args.queue_, t51);
- MoveFromDevice<T52>::move(args.queue_, t52);
- MoveFromDevice<T53>::move(args.queue_, t53);
- MoveFromDevice<T54>::move(args.queue_, t54);
- MoveFromDevice<T55>::move(args.queue_, t55);
- MoveFromDevice<T56>::move(args.queue_, t56);
- MoveFromDevice<T57>::move(args.queue_, t57);
- MoveFromDevice<T58>::move(args.queue_, t58);
- MoveFromDevice<T59>::move(args.queue_, t59);
- MoveFromDevice<T60>::move(args.queue_, t60);
- MoveFromDevice<T61>::move(args.queue_, t61);
- MoveFromDevice<T62>::move(args.queue_, t62);
- MoveFromDevice<T63>::move(args.queue_, t63);
- MoveFromDevice<T64>::move(args.queue_, t64);
- MoveFromDevice<T65>::move(args.queue_, t65);
- MoveFromDevice<T66>::move(args.queue_, t66);
- MoveFromDevice<T67>::move(args.queue_, t67);
- MoveFromDevice<T68>::move(args.queue_, t68);
- MoveFromDevice<T69>::move(args.queue_, t69);
- MoveFromDevice<T70>::move(args.queue_, t70);
- MoveFromDevice<T71>::move(args.queue_, t71);
- MoveFromDevice<T72>::move(args.queue_, t72);
- MoveFromDevice<T73>::move(args.queue_, t73);
- MoveFromDevice<T74>::move(args.queue_, t74);
- MoveFromDevice<T75>::move(args.queue_, t75);
- MoveFromDevice<T76>::move(args.queue_, t76);
- MoveFromDevice<T77>::move(args.queue_, t77);
- MoveFromDevice<T78>::move(args.queue_, t78);
- MoveFromDevice<T79>::move(args.queue_, t79);
- MoveFromDevice<T80>::move(args.queue_, t80);
- MoveFromDevice<T81>::move(args.queue_, t81);
- MoveFromDevice<T82>::move(args.queue_, t82);
- MoveFromDevice<T83>::move(args.queue_, t83);
- MoveFromDevice<T84>::move(args.queue_, t84);
- MoveFromDevice<T85>::move(args.queue_, t85);
- MoveFromDevice<T86>::move(args.queue_, t86);
- MoveFromDevice<T87>::move(args.queue_, t87);
- MoveFromDevice<T88>::move(args.queue_, t88);
- MoveFromDevice<T89>::move(args.queue_, t89);
- MoveFromDevice<T90>::move(args.queue_, t90);
- MoveFromDevice<T91>::move(args.queue_, t91);
- MoveFromDevice<T92>::move(args.queue_, t92);
- MoveFromDevice<T93>::move(args.queue_, t93);
- MoveFromDevice<T94>::move(args.queue_, t94);
- MoveFromDevice<T95>::move(args.queue_, t95);
- MoveFromDevice<T96>::move(args.queue_, t96);
- MoveFromDevice<T97>::move(args.queue_, t97);
- MoveFromDevice<T98>::move(args.queue_, t98);
- MoveFromDevice<T99>::move(args.queue_, t99);
- MoveFromDevice<T100>::move(args.queue_, t100);
- MoveFromDevice<T101>::move(args.queue_, t101);
- MoveFromDevice<T102>::move(args.queue_, t102);
- MoveFromDevice<T103>::move(args.queue_, t103);
- MoveFromDevice<T104>::move(args.queue_, t104);
- MoveFromDevice<T105>::move(args.queue_, t105);
- MoveFromDevice<T106>::move(args.queue_, t106);
- MoveFromDevice<T107>::move(args.queue_, t107);
- MoveFromDevice<T108>::move(args.queue_, t108);
- MoveFromDevice<T109>::move(args.queue_, t109);
- MoveFromDevice<T110>::move(args.queue_, t110);
- MoveFromDevice<T111>::move(args.queue_, t111);
- MoveFromDevice<T112>::move(args.queue_, t112);
- MoveFromDevice<T113>::move(args.queue_, t113);
- MoveFromDevice<T114>::move(args.queue_, t114);
- MoveFromDevice<T115>::move(args.queue_, t115);
- MoveFromDevice<T116>::move(args.queue_, t116);
- MoveFromDevice<T117>::move(args.queue_, t117);
- MoveFromDevice<T118>::move(args.queue_, t118);
- MoveFromDevice<T119>::move(args.queue_, t119);
- MoveFromDevice<T120>::move(args.queue_, t120);
- MoveFromDevice<T121>::move(args.queue_, t121);
- MoveFromDevice<T122>::move(args.queue_, t122);
- MoveFromDevice<T123>::move(args.queue_, t123);
- MoveFromDevice<T124>::move(args.queue_, t124);
- MoveFromDevice<T125>::move(args.queue_, t125);
- MoveFromDevice<T126>::move(args.queue_, t126);
- MoveFromDevice<T127>::move(args.queue_, t127);
- return event;
- }
- Event operator() (
- const EnqueueArgs& args,
- const VECTOR_CLASS<Event>& waitEvents,
- T0 t0,
- T1 t1 = NullType(),
- T2 t2 = NullType(),
- T3 t3 = NullType(),
- T4 t4 = NullType(),
- T5 t5 = NullType(),
- T6 t6 = NullType(),
- T7 t7 = NullType(),
- T8 t8 = NullType(),
- T9 t9 = NullType(),
- T10 t10 = NullType(),
- T11 t11 = NullType(),
- T12 t12 = NullType(),
- T13 t13 = NullType(),
- T14 t14 = NullType(),
- T15 t15 = NullType(),
- T16 t16 = NullType(),
- T17 t17 = NullType(),
- T18 t18 = NullType(),
- T19 t19 = NullType(),
- T20 t20 = NullType(),
- T21 t21 = NullType(),
- T22 t22 = NullType(),
- T23 t23 = NullType(),
- T24 t24 = NullType(),
- T25 t25 = NullType(),
- T26 t26 = NullType(),
- T27 t27 = NullType(),
- T28 t28 = NullType(),
- T29 t29 = NullType(),
- T30 t30 = NullType(),
- T31 t31 = NullType(),
- T32 t32 = NullType(),
- T33 t33 = NullType(),
- T34 t34 = NullType(),
- T35 t35 = NullType(),
- T36 t36 = NullType(),
- T37 t37 = NullType(),
- T38 t38 = NullType(),
- T39 t39 = NullType(),
- T40 t40 = NullType(),
- T41 t41 = NullType(),
- T42 t42 = NullType(),
- T43 t43 = NullType(),
- T44 t44 = NullType(),
- T45 t45 = NullType(),
- T46 t46 = NullType(),
- T47 t47 = NullType(),
- T48 t48 = NullType(),
- T49 t49 = NullType(),
- T50 t50 = NullType(),
- T51 t51 = NullType(),
- T52 t52 = NullType(),
- T53 t53 = NullType(),
- T54 t54 = NullType(),
- T55 t55 = NullType(),
- T56 t56 = NullType(),
- T57 t57 = NullType(),
- T58 t58 = NullType(),
- T59 t59 = NullType(),
- T60 t60 = NullType(),
- T61 t61 = NullType(),
- T62 t62 = NullType(),
- T63 t63 = NullType(),
- T64 t64 = NullType(),
- T65 t65 = NullType(),
- T66 t66 = NullType(),
- T67 t67 = NullType(),
- T68 t68 = NullType(),
- T69 t69 = NullType(),
- T70 t70 = NullType(),
- T71 t71 = NullType(),
- T72 t72 = NullType(),
- T73 t73 = NullType(),
- T74 t74 = NullType(),
- T75 t75 = NullType(),
- T76 t76 = NullType(),
- T77 t77 = NullType(),
- T78 t78 = NullType(),
- T79 t79 = NullType(),
- T80 t80 = NullType(),
- T81 t81 = NullType(),
- T82 t82 = NullType(),
- T83 t83 = NullType(),
- T84 t84 = NullType(),
- T85 t85 = NullType(),
- T86 t86 = NullType(),
- T87 t87 = NullType(),
- T88 t88 = NullType(),
- T89 t89 = NullType(),
- T90 t90 = NullType(),
- T91 t91 = NullType(),
- T92 t92 = NullType(),
- T93 t93 = NullType(),
- T94 t94 = NullType(),
- T95 t95 = NullType(),
- T96 t96 = NullType(),
- T97 t97 = NullType(),
- T98 t98 = NullType(),
- T99 t99 = NullType(),
- T100 t100 = NullType(),
- T101 t101 = NullType(),
- T102 t102 = NullType(),
- T103 t103 = NullType(),
- T104 t104 = NullType(),
- T105 t105 = NullType(),
- T106 t106 = NullType(),
- T107 t107 = NullType(),
- T108 t108 = NullType(),
- T109 t109 = NullType(),
- T110 t110 = NullType(),
- T111 t111 = NullType(),
- T112 t112 = NullType(),
- T113 t113 = NullType(),
- T114 t114 = NullType(),
- T115 t115 = NullType(),
- T116 t116 = NullType(),
- T117 t117 = NullType(),
- T118 t118 = NullType(),
- T119 t119 = NullType(),
- T120 t120 = NullType(),
- T121 t121 = NullType(),
- T122 t122 = NullType(),
- T123 t123 = NullType(),
- T124 t124 = NullType(),
- T125 t125 = NullType(),
- T126 t126 = NullType(),
- T127 t127 = NullType())
+template<
+ typename T0,
+ typename T1,
+ typename T2,
+ typename T3,
+ typename T4,
+ typename T5,
+ typename T6,
+ typename T7,
+ typename T8,
+ typename T9,
+ typename T10,
+ typename T11,
+ typename T12,
+ typename T13,
+ typename T14,
+ typename T15,
+ typename T16,
+ typename T17,
+ typename T18,
+ typename T19,
+ typename T20,
+ typename T21,
+ typename T22,
+ typename T23,
+ typename T24,
+ typename T25,
+ typename T26,
+ typename T27,
+ typename T28,
+ typename T29,
+ typename T30,
+ typename T31>
+struct functionImplementation_
+{
+ typedef detail::KernelFunctorGlobal<
+ T0,
+ T1,
+ T2,
+ T3,
+ T4,
+ T5,
+ T6,
+ T7,
+ T8,
+ T9,
+ T10,
+ T11,
+ T12,
+ T13,
+ T14,
+ T15,
+ T16,
+ T17,
+ T18,
+ T19,
+ T20,
+ T21,
+ T22,
+ T23,
+ T24,
+ T25,
+ T26,
+ T27,
+ T28,
+ T29,
+ T30,
+ T31> FunctorType;
+
+ FunctorType functor_;
+
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
{
- Event event;
- SetArg<0, T0>::set(kernel_, t0);
- SetArg<1, T1>::set(kernel_, t1);
- SetArg<2, T2>::set(kernel_, t2);
- SetArg<3, T3>::set(kernel_, t3);
- SetArg<4, T4>::set(kernel_, t4);
- SetArg<5, T5>::set(kernel_, t5);
- SetArg<6, T6>::set(kernel_, t6);
- SetArg<7, T7>::set(kernel_, t7);
- SetArg<8, T8>::set(kernel_, t8);
- SetArg<9, T9>::set(kernel_, t9);
- SetArg<10, T10>::set(kernel_, t10);
- SetArg<11, T11>::set(kernel_, t11);
- SetArg<12, T12>::set(kernel_, t12);
- SetArg<13, T13>::set(kernel_, t13);
- SetArg<14, T14>::set(kernel_, t14);
- SetArg<15, T15>::set(kernel_, t15);
- SetArg<16, T16>::set(kernel_, t16);
- SetArg<17, T17>::set(kernel_, t17);
- SetArg<18, T18>::set(kernel_, t18);
- SetArg<19, T19>::set(kernel_, t19);
- SetArg<20, T20>::set(kernel_, t20);
- SetArg<21, T21>::set(kernel_, t21);
- SetArg<22, T22>::set(kernel_, t22);
- SetArg<23, T23>::set(kernel_, t23);
- SetArg<24, T24>::set(kernel_, t24);
- SetArg<25, T25>::set(kernel_, t25);
- SetArg<26, T26>::set(kernel_, t26);
- SetArg<27, T27>::set(kernel_, t27);
- SetArg<28, T28>::set(kernel_, t28);
- SetArg<29, T29>::set(kernel_, t29);
- SetArg<30, T30>::set(kernel_, t30);
- SetArg<31, T31>::set(kernel_, t31);
- SetArg<32, T32>::set(kernel_, t32);
- SetArg<33, T33>::set(kernel_, t33);
- SetArg<34, T34>::set(kernel_, t34);
- SetArg<35, T35>::set(kernel_, t35);
- SetArg<36, T36>::set(kernel_, t36);
- SetArg<37, T37>::set(kernel_, t37);
- SetArg<38, T38>::set(kernel_, t38);
- SetArg<39, T39>::set(kernel_, t39);
- SetArg<40, T40>::set(kernel_, t40);
- SetArg<41, T41>::set(kernel_, t41);
- SetArg<42, T42>::set(kernel_, t42);
- SetArg<43, T43>::set(kernel_, t43);
- SetArg<44, T44>::set(kernel_, t44);
- SetArg<45, T45>::set(kernel_, t45);
- SetArg<46, T46>::set(kernel_, t46);
- SetArg<47, T47>::set(kernel_, t47);
- SetArg<48, T48>::set(kernel_, t48);
- SetArg<49, T49>::set(kernel_, t49);
- SetArg<50, T50>::set(kernel_, t50);
- SetArg<51, T51>::set(kernel_, t51);
- SetArg<52, T52>::set(kernel_, t52);
- SetArg<53, T53>::set(kernel_, t53);
- SetArg<54, T54>::set(kernel_, t54);
- SetArg<55, T55>::set(kernel_, t55);
- SetArg<56, T56>::set(kernel_, t56);
- SetArg<57, T57>::set(kernel_, t57);
- SetArg<58, T58>::set(kernel_, t58);
- SetArg<59, T59>::set(kernel_, t59);
- SetArg<60, T60>::set(kernel_, t60);
- SetArg<61, T61>::set(kernel_, t61);
- SetArg<62, T62>::set(kernel_, t62);
- SetArg<63, T63>::set(kernel_, t63);
- SetArg<64, T64>::set(kernel_, t64);
- SetArg<65, T65>::set(kernel_, t65);
- SetArg<66, T66>::set(kernel_, t66);
- SetArg<67, T67>::set(kernel_, t67);
- SetArg<68, T68>::set(kernel_, t68);
- SetArg<69, T69>::set(kernel_, t69);
- SetArg<70, T70>::set(kernel_, t70);
- SetArg<71, T71>::set(kernel_, t71);
- SetArg<72, T72>::set(kernel_, t72);
- SetArg<73, T73>::set(kernel_, t73);
- SetArg<74, T74>::set(kernel_, t74);
- SetArg<75, T75>::set(kernel_, t75);
- SetArg<76, T76>::set(kernel_, t76);
- SetArg<77, T77>::set(kernel_, t77);
- SetArg<78, T78>::set(kernel_, t78);
- SetArg<79, T79>::set(kernel_, t79);
- SetArg<80, T80>::set(kernel_, t80);
- SetArg<81, T81>::set(kernel_, t81);
- SetArg<82, T82>::set(kernel_, t82);
- SetArg<83, T83>::set(kernel_, t83);
- SetArg<84, T84>::set(kernel_, t84);
- SetArg<85, T85>::set(kernel_, t85);
- SetArg<86, T86>::set(kernel_, t86);
- SetArg<87, T87>::set(kernel_, t87);
- SetArg<88, T88>::set(kernel_, t88);
- SetArg<89, T89>::set(kernel_, t89);
- SetArg<90, T90>::set(kernel_, t90);
- SetArg<91, T91>::set(kernel_, t91);
- SetArg<92, T92>::set(kernel_, t92);
- SetArg<93, T93>::set(kernel_, t93);
- SetArg<94, T94>::set(kernel_, t94);
- SetArg<95, T95>::set(kernel_, t95);
- SetArg<96, T96>::set(kernel_, t96);
- SetArg<97, T97>::set(kernel_, t97);
- SetArg<98, T98>::set(kernel_, t98);
- SetArg<99, T99>::set(kernel_, t99);
- SetArg<100, T100>::set(kernel_, t100);
- SetArg<101, T101>::set(kernel_, t101);
- SetArg<102, T102>::set(kernel_, t102);
- SetArg<103, T103>::set(kernel_, t103);
- SetArg<104, T104>::set(kernel_, t104);
- SetArg<105, T105>::set(kernel_, t105);
- SetArg<106, T106>::set(kernel_, t106);
- SetArg<107, T107>::set(kernel_, t107);
- SetArg<108, T108>::set(kernel_, t108);
- SetArg<109, T109>::set(kernel_, t109);
- SetArg<110, T110>::set(kernel_, t110);
- SetArg<111, T111>::set(kernel_, t111);
- SetArg<112, T112>::set(kernel_, t112);
- SetArg<113, T113>::set(kernel_, t113);
- SetArg<114, T114>::set(kernel_, t114);
- SetArg<115, T115>::set(kernel_, t115);
- SetArg<116, T116>::set(kernel_, t116);
- SetArg<117, T117>::set(kernel_, t117);
- SetArg<118, T118>::set(kernel_, t118);
- SetArg<119, T119>::set(kernel_, t119);
- SetArg<120, T120>::set(kernel_, t120);
- SetArg<121, T121>::set(kernel_, t121);
- SetArg<122, T122>::set(kernel_, t122);
- SetArg<123, T123>::set(kernel_, t123);
- SetArg<124, T124>::set(kernel_, t124);
- SetArg<125, T125>::set(kernel_, t125);
- SetArg<126, T126>::set(kernel_, t126);
- SetArg<127, T127>::set(kernel_, t127);
-
- // Move any arguments that need moving
- MoveToDevice<T0>::move(args.queue_, t0);
- MoveToDevice<T1>::move(args.queue_, t1);
- MoveToDevice<T2>::move(args.queue_, t2);
- MoveToDevice<T3>::move(args.queue_, t3);
- MoveToDevice<T4>::move(args.queue_, t4);
- MoveToDevice<T5>::move(args.queue_, t5);
- MoveToDevice<T6>::move(args.queue_, t6);
- MoveToDevice<T7>::move(args.queue_, t7);
- MoveToDevice<T8>::move(args.queue_, t8);
- MoveToDevice<T9>::move(args.queue_, t9);
- MoveToDevice<T10>::move(args.queue_, t10);
- MoveToDevice<T11>::move(args.queue_, t11);
- MoveToDevice<T12>::move(args.queue_, t12);
- MoveToDevice<T13>::move(args.queue_, t13);
- MoveToDevice<T14>::move(args.queue_, t14);
- MoveToDevice<T15>::move(args.queue_, t15);
- MoveToDevice<T16>::move(args.queue_, t16);
- MoveToDevice<T17>::move(args.queue_, t17);
- MoveToDevice<T18>::move(args.queue_, t18);
- MoveToDevice<T19>::move(args.queue_, t19);
- MoveToDevice<T20>::move(args.queue_, t20);
- MoveToDevice<T21>::move(args.queue_, t21);
- MoveToDevice<T22>::move(args.queue_, t22);
- MoveToDevice<T23>::move(args.queue_, t23);
- MoveToDevice<T24>::move(args.queue_, t24);
- MoveToDevice<T25>::move(args.queue_, t25);
- MoveToDevice<T26>::move(args.queue_, t26);
- MoveToDevice<T27>::move(args.queue_, t27);
- MoveToDevice<T28>::move(args.queue_, t28);
- MoveToDevice<T29>::move(args.queue_, t29);
- MoveToDevice<T30>::move(args.queue_, t30);
- MoveToDevice<T31>::move(args.queue_, t31);
- MoveToDevice<T32>::move(args.queue_, t32);
- MoveToDevice<T33>::move(args.queue_, t33);
- MoveToDevice<T34>::move(args.queue_, t34);
- MoveToDevice<T35>::move(args.queue_, t35);
- MoveToDevice<T36>::move(args.queue_, t36);
- MoveToDevice<T37>::move(args.queue_, t37);
- MoveToDevice<T38>::move(args.queue_, t38);
- MoveToDevice<T39>::move(args.queue_, t39);
- MoveToDevice<T40>::move(args.queue_, t40);
- MoveToDevice<T41>::move(args.queue_, t41);
- MoveToDevice<T42>::move(args.queue_, t42);
- MoveToDevice<T43>::move(args.queue_, t43);
- MoveToDevice<T44>::move(args.queue_, t44);
- MoveToDevice<T45>::move(args.queue_, t45);
- MoveToDevice<T46>::move(args.queue_, t46);
- MoveToDevice<T47>::move(args.queue_, t47);
- MoveToDevice<T48>::move(args.queue_, t48);
- MoveToDevice<T49>::move(args.queue_, t49);
- MoveToDevice<T50>::move(args.queue_, t50);
- MoveToDevice<T51>::move(args.queue_, t51);
- MoveToDevice<T52>::move(args.queue_, t52);
- MoveToDevice<T53>::move(args.queue_, t53);
- MoveToDevice<T54>::move(args.queue_, t54);
- MoveToDevice<T55>::move(args.queue_, t55);
- MoveToDevice<T56>::move(args.queue_, t56);
- MoveToDevice<T57>::move(args.queue_, t57);
- MoveToDevice<T58>::move(args.queue_, t58);
- MoveToDevice<T59>::move(args.queue_, t59);
- MoveToDevice<T60>::move(args.queue_, t60);
- MoveToDevice<T61>::move(args.queue_, t61);
- MoveToDevice<T62>::move(args.queue_, t62);
- MoveToDevice<T63>::move(args.queue_, t63);
- MoveToDevice<T64>::move(args.queue_, t64);
- MoveToDevice<T65>::move(args.queue_, t65);
- MoveToDevice<T66>::move(args.queue_, t66);
- MoveToDevice<T67>::move(args.queue_, t67);
- MoveToDevice<T68>::move(args.queue_, t68);
- MoveToDevice<T69>::move(args.queue_, t69);
- MoveToDevice<T70>::move(args.queue_, t70);
- MoveToDevice<T71>::move(args.queue_, t71);
- MoveToDevice<T72>::move(args.queue_, t72);
- MoveToDevice<T73>::move(args.queue_, t73);
- MoveToDevice<T74>::move(args.queue_, t74);
- MoveToDevice<T75>::move(args.queue_, t75);
- MoveToDevice<T76>::move(args.queue_, t76);
- MoveToDevice<T77>::move(args.queue_, t77);
- MoveToDevice<T78>::move(args.queue_, t78);
- MoveToDevice<T79>::move(args.queue_, t79);
- MoveToDevice<T80>::move(args.queue_, t80);
- MoveToDevice<T81>::move(args.queue_, t81);
- MoveToDevice<T82>::move(args.queue_, t82);
- MoveToDevice<T83>::move(args.queue_, t83);
- MoveToDevice<T84>::move(args.queue_, t84);
- MoveToDevice<T85>::move(args.queue_, t85);
- MoveToDevice<T86>::move(args.queue_, t86);
- MoveToDevice<T87>::move(args.queue_, t87);
- MoveToDevice<T88>::move(args.queue_, t88);
- MoveToDevice<T89>::move(args.queue_, t89);
- MoveToDevice<T90>::move(args.queue_, t90);
- MoveToDevice<T91>::move(args.queue_, t91);
- MoveToDevice<T92>::move(args.queue_, t92);
- MoveToDevice<T93>::move(args.queue_, t93);
- MoveToDevice<T94>::move(args.queue_, t94);
- MoveToDevice<T95>::move(args.queue_, t95);
- MoveToDevice<T96>::move(args.queue_, t96);
- MoveToDevice<T97>::move(args.queue_, t97);
- MoveToDevice<T98>::move(args.queue_, t98);
- MoveToDevice<T99>::move(args.queue_, t99);
- MoveToDevice<T100>::move(args.queue_, t100);
- MoveToDevice<T101>::move(args.queue_, t101);
- MoveToDevice<T102>::move(args.queue_, t102);
- MoveToDevice<T103>::move(args.queue_, t103);
- MoveToDevice<T104>::move(args.queue_, t104);
- MoveToDevice<T105>::move(args.queue_, t105);
- MoveToDevice<T106>::move(args.queue_, t106);
- MoveToDevice<T107>::move(args.queue_, t107);
- MoveToDevice<T108>::move(args.queue_, t108);
- MoveToDevice<T109>::move(args.queue_, t109);
- MoveToDevice<T110>::move(args.queue_, t110);
- MoveToDevice<T111>::move(args.queue_, t111);
- MoveToDevice<T112>::move(args.queue_, t112);
- MoveToDevice<T113>::move(args.queue_, t113);
- MoveToDevice<T114>::move(args.queue_, t114);
- MoveToDevice<T115>::move(args.queue_, t115);
- MoveToDevice<T116>::move(args.queue_, t116);
- MoveToDevice<T117>::move(args.queue_, t117);
- MoveToDevice<T118>::move(args.queue_, t118);
- MoveToDevice<T119>::move(args.queue_, t119);
- MoveToDevice<T120>::move(args.queue_, t120);
- MoveToDevice<T121>::move(args.queue_, t121);
- MoveToDevice<T122>::move(args.queue_, t122);
- MoveToDevice<T123>::move(args.queue_, t123);
- MoveToDevice<T124>::move(args.queue_, t124);
- MoveToDevice<T125>::move(args.queue_, t125);
- MoveToDevice<T126>::move(args.queue_, t126);
- MoveToDevice<T127>::move(args.queue_, t127);
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 32))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
- args.queue_.enqueueNDRangeKernel(
- kernel_,
- args.offset_,
- args.global_,
- args.local_,
- &waitEvents,
- &event);
+ //! \brief Return type of the functor
+ typedef Event result_type;
- // Move any arguments that need moving
- MoveFromDevice<T0>::move(args.queue_, t0);
- MoveFromDevice<T1>::move(args.queue_, t1);
- MoveFromDevice<T2>::move(args.queue_, t2);
- MoveFromDevice<T3>::move(args.queue_, t3);
- MoveFromDevice<T4>::move(args.queue_, t4);
- MoveFromDevice<T5>::move(args.queue_, t5);
- MoveFromDevice<T6>::move(args.queue_, t6);
- MoveFromDevice<T7>::move(args.queue_, t7);
- MoveFromDevice<T8>::move(args.queue_, t8);
- MoveFromDevice<T9>::move(args.queue_, t9);
- MoveFromDevice<T10>::move(args.queue_, t10);
- MoveFromDevice<T11>::move(args.queue_, t11);
- MoveFromDevice<T12>::move(args.queue_, t12);
- MoveFromDevice<T13>::move(args.queue_, t13);
- MoveFromDevice<T14>::move(args.queue_, t14);
- MoveFromDevice<T15>::move(args.queue_, t15);
- MoveFromDevice<T16>::move(args.queue_, t16);
- MoveFromDevice<T17>::move(args.queue_, t17);
- MoveFromDevice<T18>::move(args.queue_, t18);
- MoveFromDevice<T19>::move(args.queue_, t19);
- MoveFromDevice<T20>::move(args.queue_, t20);
- MoveFromDevice<T21>::move(args.queue_, t21);
- MoveFromDevice<T22>::move(args.queue_, t22);
- MoveFromDevice<T23>::move(args.queue_, t23);
- MoveFromDevice<T24>::move(args.queue_, t24);
- MoveFromDevice<T25>::move(args.queue_, t25);
- MoveFromDevice<T26>::move(args.queue_, t26);
- MoveFromDevice<T27>::move(args.queue_, t27);
- MoveFromDevice<T28>::move(args.queue_, t28);
- MoveFromDevice<T29>::move(args.queue_, t29);
- MoveFromDevice<T30>::move(args.queue_, t30);
- MoveFromDevice<T31>::move(args.queue_, t31);
- MoveFromDevice<T32>::move(args.queue_, t32);
- MoveFromDevice<T33>::move(args.queue_, t33);
- MoveFromDevice<T34>::move(args.queue_, t34);
- MoveFromDevice<T35>::move(args.queue_, t35);
- MoveFromDevice<T36>::move(args.queue_, t36);
- MoveFromDevice<T37>::move(args.queue_, t37);
- MoveFromDevice<T38>::move(args.queue_, t38);
- MoveFromDevice<T39>::move(args.queue_, t39);
- MoveFromDevice<T40>::move(args.queue_, t40);
- MoveFromDevice<T41>::move(args.queue_, t41);
- MoveFromDevice<T42>::move(args.queue_, t42);
- MoveFromDevice<T43>::move(args.queue_, t43);
- MoveFromDevice<T44>::move(args.queue_, t44);
- MoveFromDevice<T45>::move(args.queue_, t45);
- MoveFromDevice<T46>::move(args.queue_, t46);
- MoveFromDevice<T47>::move(args.queue_, t47);
- MoveFromDevice<T48>::move(args.queue_, t48);
- MoveFromDevice<T49>::move(args.queue_, t49);
- MoveFromDevice<T50>::move(args.queue_, t50);
- MoveFromDevice<T51>::move(args.queue_, t51);
- MoveFromDevice<T52>::move(args.queue_, t52);
- MoveFromDevice<T53>::move(args.queue_, t53);
- MoveFromDevice<T54>::move(args.queue_, t54);
- MoveFromDevice<T55>::move(args.queue_, t55);
- MoveFromDevice<T56>::move(args.queue_, t56);
- MoveFromDevice<T57>::move(args.queue_, t57);
- MoveFromDevice<T58>::move(args.queue_, t58);
- MoveFromDevice<T59>::move(args.queue_, t59);
- MoveFromDevice<T60>::move(args.queue_, t60);
- MoveFromDevice<T61>::move(args.queue_, t61);
- MoveFromDevice<T62>::move(args.queue_, t62);
- MoveFromDevice<T63>::move(args.queue_, t63);
- MoveFromDevice<T64>::move(args.queue_, t64);
- MoveFromDevice<T65>::move(args.queue_, t65);
- MoveFromDevice<T66>::move(args.queue_, t66);
- MoveFromDevice<T67>::move(args.queue_, t67);
- MoveFromDevice<T68>::move(args.queue_, t68);
- MoveFromDevice<T69>::move(args.queue_, t69);
- MoveFromDevice<T70>::move(args.queue_, t70);
- MoveFromDevice<T71>::move(args.queue_, t71);
- MoveFromDevice<T72>::move(args.queue_, t72);
- MoveFromDevice<T73>::move(args.queue_, t73);
- MoveFromDevice<T74>::move(args.queue_, t74);
- MoveFromDevice<T75>::move(args.queue_, t75);
- MoveFromDevice<T76>::move(args.queue_, t76);
- MoveFromDevice<T77>::move(args.queue_, t77);
- MoveFromDevice<T78>::move(args.queue_, t78);
- MoveFromDevice<T79>::move(args.queue_, t79);
- MoveFromDevice<T80>::move(args.queue_, t80);
- MoveFromDevice<T81>::move(args.queue_, t81);
- MoveFromDevice<T82>::move(args.queue_, t82);
- MoveFromDevice<T83>::move(args.queue_, t83);
- MoveFromDevice<T84>::move(args.queue_, t84);
- MoveFromDevice<T85>::move(args.queue_, t85);
- MoveFromDevice<T86>::move(args.queue_, t86);
- MoveFromDevice<T87>::move(args.queue_, t87);
- MoveFromDevice<T88>::move(args.queue_, t88);
- MoveFromDevice<T89>::move(args.queue_, t89);
- MoveFromDevice<T90>::move(args.queue_, t90);
- MoveFromDevice<T91>::move(args.queue_, t91);
- MoveFromDevice<T92>::move(args.queue_, t92);
- MoveFromDevice<T93>::move(args.queue_, t93);
- MoveFromDevice<T94>::move(args.queue_, t94);
- MoveFromDevice<T95>::move(args.queue_, t95);
- MoveFromDevice<T96>::move(args.queue_, t96);
- MoveFromDevice<T97>::move(args.queue_, t97);
- MoveFromDevice<T98>::move(args.queue_, t98);
- MoveFromDevice<T99>::move(args.queue_, t99);
- MoveFromDevice<T100>::move(args.queue_, t100);
- MoveFromDevice<T101>::move(args.queue_, t101);
- MoveFromDevice<T102>::move(args.queue_, t102);
- MoveFromDevice<T103>::move(args.queue_, t103);
- MoveFromDevice<T104>::move(args.queue_, t104);
- MoveFromDevice<T105>::move(args.queue_, t105);
- MoveFromDevice<T106>::move(args.queue_, t106);
- MoveFromDevice<T107>::move(args.queue_, t107);
- MoveFromDevice<T108>::move(args.queue_, t108);
- MoveFromDevice<T109>::move(args.queue_, t109);
- MoveFromDevice<T110>::move(args.queue_, t110);
- MoveFromDevice<T111>::move(args.queue_, t111);
- MoveFromDevice<T112>::move(args.queue_, t112);
- MoveFromDevice<T113>::move(args.queue_, t113);
- MoveFromDevice<T114>::move(args.queue_, t114);
- MoveFromDevice<T115>::move(args.queue_, t115);
- MoveFromDevice<T116>::move(args.queue_, t116);
- MoveFromDevice<T117>::move(args.queue_, t117);
- MoveFromDevice<T118>::move(args.queue_, t118);
- MoveFromDevice<T119>::move(args.queue_, t119);
- MoveFromDevice<T120>::move(args.queue_, t120);
- MoveFromDevice<T121>::move(args.queue_, t121);
- MoveFromDevice<T122>::move(args.queue_, t122);
- MoveFromDevice<T123>::move(args.queue_, t123);
- MoveFromDevice<T124>::move(args.queue_, t124);
- MoveFromDevice<T125>::move(args.queue_, t125);
- MoveFromDevice<T126>::move(args.queue_, t126);
- MoveFromDevice<T127>::move(args.queue_, t127);
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
+ const EnqueueArgs&,
+ T0,
+ T1,
+ T2,
+ T3,
+ T4,
+ T5,
+ T6,
+ T7,
+ T8,
+ T9,
+ T10,
+ T11,
+ T12,
+ T13,
+ T14,
+ T15,
+ T16,
+ T17,
+ T18,
+ T19,
+ T20,
+ T21,
+ T22,
+ T23,
+ T24,
+ T25,
+ T26,
+ T27,
+ T28,
+ T29,
+ T30,
+ T31);
- return event;
- }
-};
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
+ T0 arg0,
+ T1 arg1,
+ T2 arg2,
+ T3 arg3,
+ T4 arg4,
+ T5 arg5,
+ T6 arg6,
+ T7 arg7,
+ T8 arg8,
+ T9 arg9,
+ T10 arg10,
+ T11 arg11,
+ T12 arg12,
+ T13 arg13,
+ T14 arg14,
+ T15 arg15,
+ T16 arg16,
+ T17 arg17,
+ T18 arg18,
+ T19 arg19,
+ T20 arg20,
+ T21 arg21,
+ T22 arg22,
+ T23 arg23,
+ T24 arg24,
+ T25 arg25,
+ T26 arg26,
+ T27 arg27,
+ T28 arg28,
+ T29 arg29,
+ T30 arg30,
+ T31 arg31)
+ {
+ return functor_(
+ enqueueArgs,
+ arg0,
+ arg1,
+ arg2,
+ arg3,
+ arg4,
+ arg5,
+ arg6,
+ arg7,
+ arg8,
+ arg9,
+ arg10,
+ arg11,
+ arg12,
+ arg13,
+ arg14,
+ arg15,
+ arg16,
+ arg17,
+ arg18,
+ arg19,
+ arg20,
+ arg21,
+ arg22,
+ arg23,
+ arg24,
+ arg25,
+ arg26,
+ arg27,
+ arg28,
+ arg29,
+ arg30,
+ arg31);
+ }
-//------------------------------------------------------------------------------------------------------
+};
template<
typename T0,
@@ -6015,47446 +7008,9 @@ template<
typename T27,
typename T28,
typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116,
- typename T117,
- typename T118,
- typename T119,
- typename T120,
- typename T121,
- typename T122,
- typename T123,
- typename T124,
- typename T125,
- typename T126,
- typename T127>
+ typename T30>
struct functionImplementation_
-{
-};
-
-template<
- typename T0>
-struct functionImplementation_<
- T0,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0)
- {
- return functor_(
- enqueueArgs,
- arg0);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1>
-struct functionImplementation_<
- T0,
- T1,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97>
-struct functionImplementation_<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType>
-{
- typedef detail::KernelFunctorGlobal<
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType> FunctorType;
-
- FunctorType functor_;
-
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
- const EnqueueArgs&,
- T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
- T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97)
- {
- return functor_(
- enqueueArgs,
- arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97);
- }
-
- operator type_ ()
- {
- return type_(*this);
- }
-
-};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98>
-struct functionImplementation_<
- T0,
+< T0,
T1,
T2,
T3,
@@ -53485,102 +7041,6 @@ struct functionImplementation_<
T28,
T29,
T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType>
{
typedef detail::KernelFunctorGlobal<
@@ -53613,114 +7073,28 @@ struct functionImplementation_<
T26,
T27,
T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
+ T29,
+ T30,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 31))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -53752,77 +7126,10 @@ struct functionImplementation_<
T27,
T28,
T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T30);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -53853,75 +7160,7 @@ struct functionImplementation_<
T27 arg27,
T28 arg28,
T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98)
+ T30 arg30)
{
return functor_(
enqueueArgs,
@@ -53955,81 +7194,9 @@ struct functionImplementation_<
arg27,
arg28,
arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98);
+ arg30);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -54063,79 +7230,9 @@ template<
typename T26,
typename T27,
typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99>
-struct functionImplementation_<
- T0,
+ typename T29>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -54165,102 +7262,6 @@ struct functionImplementation_<
T27,
T28,
T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType>
{
@@ -54295,113 +7296,27 @@ struct functionImplementation_<
T27,
T28,
T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 30))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -54432,79 +7347,10 @@ struct functionImplementation_<
T26,
T27,
T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T29);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -54534,77 +7380,7 @@ struct functionImplementation_<
T26 arg26,
T27 arg27,
T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99)
+ T29 arg29)
{
return functor_(
enqueueArgs,
@@ -54637,83 +7413,9 @@ struct functionImplementation_<
arg26,
arg27,
arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99);
+ arg29);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -54746,81 +7448,9 @@ template<
typename T25,
typename T26,
typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100>
-struct functionImplementation_<
- T0,
+ typename T28>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -54849,102 +7479,6 @@ struct functionImplementation_<
T26,
T27,
T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType>
@@ -54979,114 +7513,28 @@ struct functionImplementation_<
T26,
T27,
T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 29))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -55116,81 +7564,10 @@ struct functionImplementation_<
T25,
T26,
T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T28);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -55219,79 +7596,7 @@ struct functionImplementation_<
T25 arg25,
T26 arg26,
T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100)
+ T28 arg28)
{
return functor_(
enqueueArgs,
@@ -55323,85 +7628,9 @@ struct functionImplementation_<
arg25,
arg26,
arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100);
+ arg28);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -55433,83 +7662,9 @@ template<
typename T24,
typename T25,
typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101>
-struct functionImplementation_<
- T0,
+ typename T27>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -55537,102 +7692,6 @@ struct functionImplementation_<
T25,
T26,
T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -55667,115 +7726,29 @@ struct functionImplementation_<
T25,
T26,
T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 28))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -55804,83 +7777,10 @@ struct functionImplementation_<
T24,
T25,
T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T27);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -55908,81 +7808,7 @@ struct functionImplementation_<
T24 arg24,
T25 arg25,
T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101)
+ T27 arg27)
{
return functor_(
enqueueArgs,
@@ -56013,88 +7839,10 @@ struct functionImplementation_<
arg24,
arg25,
arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101);
- }
-
- operator type_ ()
- {
- return type_(*this);
+ arg27);
}
+
};
template<
@@ -56124,85 +7872,9 @@ template<
typename T23,
typename T24,
typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102>
-struct functionImplementation_<
- T0,
+ typename T26>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -56229,102 +7901,6 @@ struct functionImplementation_<
T24,
T25,
T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -56359,116 +7935,30 @@ struct functionImplementation_<
T24,
T25,
T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 27))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -56496,85 +7986,10 @@ struct functionImplementation_<
T23,
T24,
T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T26);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -56601,83 +8016,7 @@ struct functionImplementation_<
T23 arg23,
T24 arg24,
T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102)
+ T26 arg26)
{
return functor_(
enqueueArgs,
@@ -56707,89 +8046,9 @@ struct functionImplementation_<
arg23,
arg24,
arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102);
+ arg26);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -56819,87 +8078,9 @@ template<
typename T22,
typename T23,
typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103>
-struct functionImplementation_<
- T0,
+ typename T25>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -56925,102 +8106,6 @@ struct functionImplementation_<
T23,
T24,
T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -57055,102 +8140,6 @@ struct functionImplementation_<
T23,
T24,
T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -57158,14 +8147,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 26))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -57192,87 +8191,10 @@ struct functionImplementation_<
T22,
T23,
T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T25);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -57298,85 +8220,7 @@ struct functionImplementation_<
T22 arg22,
T23 arg23,
T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103)
+ T25 arg25)
{
return functor_(
enqueueArgs,
@@ -57405,91 +8249,9 @@ struct functionImplementation_<
arg22,
arg23,
arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103);
+ arg25);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -57518,89 +8280,9 @@ template<
typename T21,
typename T22,
typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104>
-struct functionImplementation_<
- T0,
+ typename T24>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -57625,102 +8307,6 @@ struct functionImplementation_<
T22,
T23,
T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -57755,102 +8341,6 @@ struct functionImplementation_<
T22,
T23,
T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -57859,14 +8349,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 25))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -57892,89 +8392,10 @@ struct functionImplementation_<
T21,
T22,
T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T24);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -57999,87 +8420,7 @@ struct functionImplementation_<
T21 arg21,
T22 arg22,
T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104)
+ T24 arg24)
{
return functor_(
enqueueArgs,
@@ -58104,96 +8445,12 @@ struct functionImplementation_<
arg18,
arg19,
arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104);
+ arg21,
+ arg22,
+ arg23,
+ arg24);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -58221,91 +8478,9 @@ template<
typename T20,
typename T21,
typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105>
-struct functionImplementation_<
- T0,
+ typename T23>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -58329,102 +8504,6 @@ struct functionImplementation_<
T21,
T22,
T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -58459,102 +8538,6 @@ struct functionImplementation_<
T21,
T22,
T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -58564,14 +8547,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 24))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -58596,91 +8589,10 @@ struct functionImplementation_<
T20,
T21,
T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T23);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -58704,89 +8616,7 @@ struct functionImplementation_<
T20 arg20,
T21 arg21,
T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105)
+ T23 arg23)
{
return functor_(
enqueueArgs,
@@ -58813,95 +8643,9 @@ struct functionImplementation_<
arg20,
arg21,
arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105);
+ arg23);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -58928,93 +8672,9 @@ template<
typename T19,
typename T20,
typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106>
-struct functionImplementation_<
- T0,
+ typename T22>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -59037,102 +8697,6 @@ struct functionImplementation_<
T20,
T21,
T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -59167,102 +8731,6 @@ struct functionImplementation_<
T20,
T21,
T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -59273,14 +8741,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 23))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -59304,93 +8782,10 @@ struct functionImplementation_<
T19,
T20,
T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T22);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -59413,91 +8808,7 @@ struct functionImplementation_<
T19 arg19,
T20 arg20,
T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106)
+ T22 arg22)
{
return functor_(
enqueueArgs,
@@ -59523,97 +8834,9 @@ struct functionImplementation_<
arg19,
arg20,
arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106);
+ arg22);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -59639,95 +8862,9 @@ template<
typename T18,
typename T19,
typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107>
-struct functionImplementation_<
- T0,
+ typename T21>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -59749,102 +8886,6 @@ struct functionImplementation_<
T19,
T20,
T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -59879,102 +8920,6 @@ struct functionImplementation_<
T19,
T20,
T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -59986,14 +8931,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 22))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -60014,97 +8969,12 @@ struct functionImplementation_<
T16,
T17,
T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T19,
+ T20,
+ T21);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -60126,93 +8996,7 @@ struct functionImplementation_<
T18 arg18,
T19 arg19,
T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107)
+ T21 arg21)
{
return functor_(
enqueueArgs,
@@ -60237,99 +9021,9 @@ struct functionImplementation_<
arg18,
arg19,
arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107);
+ arg21);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -60354,97 +9048,9 @@ template<
typename T17,
typename T18,
typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108>
-struct functionImplementation_<
- T0,
+ typename T20>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -60465,102 +9071,6 @@ struct functionImplementation_<
T18,
T19,
T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -60595,102 +9105,6 @@ struct functionImplementation_<
T18,
T19,
T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -60703,14 +9117,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 21))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -60732,97 +9156,10 @@ struct functionImplementation_<
T17,
T18,
T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T20);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -60843,95 +9180,7 @@ struct functionImplementation_<
T17 arg17,
T18 arg18,
T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108)
+ T20 arg20)
{
return functor_(
enqueueArgs,
@@ -60955,101 +9204,9 @@ struct functionImplementation_<
arg17,
arg18,
arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108);
+ arg20);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -61073,99 +9230,9 @@ template<
typename T16,
typename T17,
typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109>
-struct functionImplementation_<
- T0,
+ typename T19>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -61185,102 +9252,6 @@ struct functionImplementation_<
T17,
T18,
T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -61315,102 +9286,6 @@ struct functionImplementation_<
T17,
T18,
T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -61424,14 +9299,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 20))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -61452,99 +9337,10 @@ struct functionImplementation_<
T16,
T17,
T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T19);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -61564,97 +9360,7 @@ struct functionImplementation_<
T16 arg16,
T17 arg17,
T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109)
+ T19 arg19)
{
return functor_(
enqueueArgs,
@@ -61677,103 +9383,9 @@ struct functionImplementation_<
arg16,
arg17,
arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109);
+ arg19);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -61796,101 +9408,9 @@ template<
typename T15,
typename T16,
typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110>
-struct functionImplementation_<
- T0,
+ typename T18>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -61903,108 +9423,12 @@ struct functionImplementation_<
T10,
T11,
T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- NullType,
- NullType,
- NullType,
- NullType,
+ T13,
+ T14,
+ T15,
+ T16,
+ T17,
+ T18,
NullType,
NullType,
NullType,
@@ -62039,102 +9463,6 @@ struct functionImplementation_<
T16,
T17,
T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- NullType,
- NullType,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -62149,14 +9477,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 19))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -62176,101 +9514,10 @@ struct functionImplementation_<
T15,
T16,
T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T18);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -62289,99 +9536,7 @@ struct functionImplementation_<
T15 arg15,
T16 arg16,
T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110)
+ T18 arg18)
{
return functor_(
enqueueArgs,
@@ -62403,105 +9558,9 @@ struct functionImplementation_<
arg15,
arg16,
arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110);
+ arg18);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -62523,103 +9582,9 @@ template<
typename T14,
typename T15,
typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111>
-struct functionImplementation_<
- T0,
+ typename T17>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -62637,102 +9602,6 @@ struct functionImplementation_<
T15,
T16,
T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -62767,102 +9636,6 @@ struct functionImplementation_<
T15,
T16,
T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- NullType,
- NullType,
NullType,
NullType,
NullType,
@@ -62878,14 +9651,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 18))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -62904,103 +9687,10 @@ struct functionImplementation_<
T14,
T15,
T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T17);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -63018,101 +9708,7 @@ struct functionImplementation_<
T14 arg14,
T15 arg15,
T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111)
+ T17 arg17)
{
return functor_(
enqueueArgs,
@@ -63133,107 +9729,9 @@ struct functionImplementation_<
arg14,
arg15,
arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111);
+ arg17);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -63254,105 +9752,9 @@ template<
typename T13,
typename T14,
typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112>
-struct functionImplementation_<
- T0,
+ typename T16>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -63369,102 +9771,6 @@ struct functionImplementation_<
T14,
T15,
T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
NullType,
NullType,
NullType,
@@ -63499,102 +9805,6 @@ struct functionImplementation_<
T14,
T15,
T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
NullType,
NullType,
NullType,
@@ -63611,130 +9821,45 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 17))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T3,
+ T4,
+ T5,
+ T6,
+ T7,
+ T8,
+ T9,
+ T10,
+ T11,
+ T12,
+ T13,
+ T14,
+ T15,
+ T16);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -63751,103 +9876,7 @@ struct functionImplementation_<
T13 arg13,
T14 arg14,
T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112)
+ T16 arg16)
{
return functor_(
enqueueArgs,
@@ -63867,109 +9896,9 @@ struct functionImplementation_<
arg13,
arg14,
arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112);
+ arg16);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -63989,107 +9918,9 @@ template<
typename T12,
typename T13,
typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113>
-struct functionImplementation_<
- T0,
+ typename T15>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -64105,104 +9936,8 @@ struct functionImplementation_<
T13,
T14,
T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -64235,104 +9970,8 @@ struct functionImplementation_<
T13,
T14,
T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -64348,14 +9987,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 16))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -64372,107 +10021,10 @@ struct functionImplementation_<
T12,
T13,
T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T15);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -64488,105 +10040,7 @@ struct functionImplementation_<
T12 arg12,
T13 arg13,
T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113)
+ T15 arg15)
{
return functor_(
enqueueArgs,
@@ -64605,111 +10059,9 @@ struct functionImplementation_<
arg12,
arg13,
arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113);
+ arg15);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -64728,109 +10080,9 @@ template<
typename T11,
typename T12,
typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114>
-struct functionImplementation_<
- T0,
+ typename T14>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -64845,106 +10097,10 @@ struct functionImplementation_<
T12,
T13,
T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -64975,106 +10131,10 @@ struct functionImplementation_<
T12,
T13,
T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -65089,132 +10149,43 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 15))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T3,
+ T4,
+ T5,
+ T6,
+ T7,
+ T8,
+ T9,
+ T10,
+ T11,
+ T12,
+ T13,
+ T14);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -65229,107 +10200,7 @@ struct functionImplementation_<
T11 arg11,
T12 arg12,
T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114)
+ T14 arg14)
{
return functor_(
enqueueArgs,
@@ -65347,113 +10218,9 @@ struct functionImplementation_<
arg11,
arg12,
arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114);
+ arg14);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -65471,111 +10238,9 @@ template<
typename T10,
typename T11,
typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115>
-struct functionImplementation_<
- T0,
+ typename T13>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -65589,108 +10254,12 @@ struct functionImplementation_<
T11,
T12,
T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -65719,108 +10288,12 @@ struct functionImplementation_<
T11,
T12,
T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -65834,14 +10307,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 14))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -65856,111 +10339,10 @@ struct functionImplementation_<
T10,
T11,
T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T13);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -65974,109 +10356,7 @@ struct functionImplementation_<
T10 arg10,
T11 arg11,
T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115)
+ T13 arg13)
{
return functor_(
enqueueArgs,
@@ -66093,115 +10373,9 @@ struct functionImplementation_<
arg10,
arg11,
arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115);
+ arg13);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -66218,113 +10392,9 @@ template<
typename T9,
typename T10,
typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116>
-struct functionImplementation_<
- T0,
+ typename T12>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -66337,110 +10407,14 @@ struct functionImplementation_<
T10,
T11,
T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -66467,110 +10441,14 @@ struct functionImplementation_<
T10,
T11,
T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -66583,14 +10461,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 13))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -66604,113 +10492,10 @@ struct functionImplementation_<
T9,
T10,
T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T12);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -66723,111 +10508,7 @@ struct functionImplementation_<
T9 arg9,
T10 arg10,
T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115,
- T116 arg116)
+ T12 arg12)
{
return functor_(
enqueueArgs,
@@ -66843,117 +10524,9 @@ struct functionImplementation_<
arg9,
arg10,
arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115,
- arg116);
+ arg12);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -66969,115 +10542,9 @@ template<
typename T8,
typename T9,
typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116,
- typename T117>
-struct functionImplementation_<
- T0,
+ typename T11>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -67089,112 +10556,16 @@ struct functionImplementation_<
T9,
T10,
T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -67219,112 +10590,16 @@ struct functionImplementation_<
T9,
T10,
T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -67336,14 +10611,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 12))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -67356,115 +10641,10 @@ struct functionImplementation_<
T8,
T9,
T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T11);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -67476,113 +10656,7 @@ struct functionImplementation_<
T8 arg8,
T9 arg9,
T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115,
- T116 arg116,
- T117 arg117)
+ T11 arg11)
{
return functor_(
enqueueArgs,
@@ -67597,244 +10671,26 @@ struct functionImplementation_<
arg8,
arg9,
arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115,
- arg116,
- arg117);
+ arg11);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
-
-template<
- typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116,
- typename T117,
- typename T118>
-struct functionImplementation_<
- T0,
+
+template<
+ typename T0,
+ typename T1,
+ typename T2,
+ typename T3,
+ typename T4,
+ typename T5,
+ typename T6,
+ typename T7,
+ typename T8,
+ typename T9,
+ typename T10>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -67845,114 +10701,18 @@ struct functionImplementation_<
T8,
T9,
T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -67975,114 +10735,18 @@ struct functionImplementation_<
T8,
T9,
T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -68093,14 +10757,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 11))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -68112,117 +10786,10 @@ struct functionImplementation_<
T7,
T8,
T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T10);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -68233,115 +10800,7 @@ struct functionImplementation_<
T7 arg7,
T8 arg8,
T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115,
- T116 arg116,
- T117 arg117,
- T118 arg118)
+ T10 arg10)
{
return functor_(
enqueueArgs,
@@ -68355,121 +10814,9 @@ struct functionImplementation_<
arg7,
arg8,
arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115,
- arg116,
- arg117,
- arg118);
+ arg10);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -68483,119 +10830,9 @@ template<
typename T6,
typename T7,
typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116,
- typename T117,
- typename T118,
- typename T119>
-struct functionImplementation_<
- T0,
+ typename T9>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -68605,116 +10842,20 @@ struct functionImplementation_<
T7,
T8,
T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -68735,116 +10876,20 @@ struct functionImplementation_<
T7,
T8,
T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -68854,14 +10899,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 10))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -68872,119 +10927,10 @@ struct functionImplementation_<
T6,
T7,
T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T9);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -68994,117 +10940,7 @@ struct functionImplementation_<
T6 arg6,
T7 arg7,
T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115,
- T116 arg116,
- T117 arg117,
- T118 arg118,
- T119 arg119)
+ T9 arg9)
{
return functor_(
enqueueArgs,
@@ -69117,123 +10953,9 @@ struct functionImplementation_<
arg6,
arg7,
arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115,
- arg116,
- arg117,
- arg118,
- arg119);
+ arg9);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -69246,121 +10968,9 @@ template<
typename T5,
typename T6,
typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116,
- typename T117,
- typename T118,
- typename T119,
- typename T120>
-struct functionImplementation_<
- T0,
+ typename T8>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -69369,118 +10979,22 @@ struct functionImplementation_<
T6,
T7,
T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -69499,118 +11013,22 @@ struct functionImplementation_<
T6,
T7,
T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -69619,14 +11037,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 9))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -69636,121 +11064,10 @@ struct functionImplementation_<
T5,
T6,
T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T8);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -69759,249 +11076,21 @@ struct functionImplementation_<
T5 arg5,
T6 arg6,
T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115,
- T116 arg116,
- T117 arg117,
- T118 arg118,
- T119 arg119,
- T120 arg120)
+ T8 arg8)
{
return functor_(
enqueueArgs,
arg0,
arg1,
arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115,
- arg116,
- arg117,
- arg118,
- arg119,
- arg120);
+ arg3,
+ arg4,
+ arg5,
+ arg6,
+ arg7,
+ arg8);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -70013,123 +11102,9 @@ template<
typename T4,
typename T5,
typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116,
- typename T117,
- typename T118,
- typename T119,
- typename T120,
- typename T121>
-struct functionImplementation_<
- T0,
+ typename T7>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
@@ -70137,120 +11112,24 @@ struct functionImplementation_<
T5,
T6,
T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -70267,120 +11146,24 @@ struct functionImplementation_<
T5,
T6,
T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -70388,14 +11171,24 @@ struct functionImplementation_<
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 8))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -70404,123 +11197,10 @@ struct functionImplementation_<
T4,
T5,
T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T7);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
@@ -70528,121 +11208,7 @@ struct functionImplementation_<
T4 arg4,
T5 arg5,
T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115,
- T116 arg116,
- T117 arg117,
- T118 arg118,
- T119 arg119,
- T120 arg120,
- T121 arg121)
+ T7 arg7)
{
return functor_(
enqueueArgs,
@@ -70653,127 +11219,9 @@ struct functionImplementation_<
arg4,
arg5,
arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115,
- arg116,
- arg117,
- arg118,
- arg119,
- arg120,
- arg121);
+ arg7);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -70784,247 +11232,35 @@ template<
typename T3,
typename T4,
typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116,
- typename T117,
- typename T118,
- typename T119,
- typename T120,
- typename T121,
- typename T122>
-struct functionImplementation_<
- T0,
+ typename T6>
+struct functionImplementation_
+< T0,
T1,
T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
+ T3,
+ T4,
+ T5,
+ T6,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -71039,136 +11275,50 @@ struct functionImplementation_<
T4,
T5,
T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 7))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
@@ -71176,248 +11326,17 @@ struct functionImplementation_<
T3,
T4,
T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T6);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
T3 arg3,
T4 arg4,
T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115,
- T116 arg116,
- T117 arg117,
- T118 arg118,
- T119 arg119,
- T120 arg120,
- T121 arg121,
- T122 arg122)
+ T6 arg6)
{
return functor_(
enqueueArgs,
@@ -71427,129 +11346,9 @@ struct functionImplementation_<
arg3,
arg4,
arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115,
- arg116,
- arg117,
- arg118,
- arg119,
- arg120,
- arg121,
- arg122);
+ arg6);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -71559,250 +11358,36 @@ template<
typename T2,
typename T3,
typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116,
- typename T117,
- typename T118,
- typename T119,
- typename T120,
- typename T121,
- typename T122,
- typename T123>
-struct functionImplementation_<
- T0,
+ typename T5>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
T4,
T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
@@ -71815,388 +11400,67 @@ struct functionImplementation_<
T3,
T4,
T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 6))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
T2,
T3,
T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T5);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
T3 arg3,
T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115,
- T116 arg116,
- T117 arg117,
- T118 arg118,
- T119 arg119,
- T120 arg120,
- T121 arg121,
- T122 arg122,
- T123 arg123)
+ T5 arg5)
{
return functor_(
enqueueArgs,
@@ -72205,131 +11469,9 @@ struct functionImplementation_<
arg2,
arg3,
arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115,
- arg116,
- arg117,
- arg118,
- arg119,
- arg120,
- arg121,
- arg122,
- arg123);
+ arg5);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
@@ -72338,253 +11480,155 @@ template<
typename T1,
typename T2,
typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116,
- typename T117,
- typename T118,
- typename T119,
- typename T120,
- typename T121,
- typename T122,
- typename T123,
- typename T124>
-struct functionImplementation_<
- T0,
+ typename T4>
+struct functionImplementation_
+< T0,
T1,
T2,
T3,
T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123,
- T124,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType>
+{
+ typedef detail::KernelFunctorGlobal<
+ T0,
+ T1,
+ T2,
+ T3,
+ T4,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType> FunctorType;
+
+ FunctorType functor_;
+
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 5))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
+ const EnqueueArgs&,
+ T0,
+ T1,
+ T2,
+ T3,
+ T4);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
+ T0 arg0,
+ T1 arg1,
+ T2 arg2,
+ T3 arg3,
+ T4 arg4)
+ {
+ return functor_(
+ enqueueArgs,
+ arg0,
+ arg1,
+ arg2,
+ arg3,
+ arg4);
+ }
+
+
+};
+
+template<
+ typename T0,
+ typename T1,
+ typename T2,
+ typename T3>
+struct functionImplementation_
+< T0,
+ T1,
+ T2,
+ T3,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType>
@@ -72594,783 +11638,112 @@ struct functionImplementation_<
T1,
T2,
T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123,
- T124,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 4))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123,
- T124)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T3);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115,
- T116 arg116,
- T117 arg117,
- T118 arg118,
- T119 arg119,
- T120 arg120,
- T121 arg121,
- T122 arg122,
- T123 arg123,
- T124 arg124)
+ T3 arg3)
{
return functor_(
enqueueArgs,
arg0,
arg1,
arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115,
- arg116,
- arg117,
- arg118,
- arg119,
- arg120,
- arg121,
- arg122,
- arg123,
- arg124);
+ arg3);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
template<
typename T0,
typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116,
- typename T117,
- typename T118,
- typename T119,
- typename T120,
- typename T121,
- typename T122,
- typename T123,
- typename T124,
- typename T125>
-struct functionImplementation_<
- T0,
+ typename T2>
+struct functionImplementation_
+< T0,
T1,
T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123,
- T124,
- T125,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType>
{
@@ -73378,1323 +11751,283 @@ struct functionImplementation_<
T0,
T1,
T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123,
- T124,
- T125,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 3))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123,
- T124,
- T125)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T2);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115,
- T116 arg116,
- T117 arg117,
- T118 arg118,
- T119 arg119,
- T120 arg120,
- T121 arg121,
- T122 arg122,
- T123 arg123,
- T124 arg124,
- T125 arg125)
+ T2 arg2)
{
return functor_(
enqueueArgs,
arg0,
arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115,
- arg116,
- arg117,
- arg118,
- arg119,
- arg120,
- arg121,
- arg122,
- arg123,
- arg124,
- arg125);
+ arg2);
}
- operator type_ ()
- {
- return type_(*this);
- }
};
template<
typename T0,
- typename T1,
- typename T2,
- typename T3,
- typename T4,
- typename T5,
- typename T6,
- typename T7,
- typename T8,
- typename T9,
- typename T10,
- typename T11,
- typename T12,
- typename T13,
- typename T14,
- typename T15,
- typename T16,
- typename T17,
- typename T18,
- typename T19,
- typename T20,
- typename T21,
- typename T22,
- typename T23,
- typename T24,
- typename T25,
- typename T26,
- typename T27,
- typename T28,
- typename T29,
- typename T30,
- typename T31,
- typename T32,
- typename T33,
- typename T34,
- typename T35,
- typename T36,
- typename T37,
- typename T38,
- typename T39,
- typename T40,
- typename T41,
- typename T42,
- typename T43,
- typename T44,
- typename T45,
- typename T46,
- typename T47,
- typename T48,
- typename T49,
- typename T50,
- typename T51,
- typename T52,
- typename T53,
- typename T54,
- typename T55,
- typename T56,
- typename T57,
- typename T58,
- typename T59,
- typename T60,
- typename T61,
- typename T62,
- typename T63,
- typename T64,
- typename T65,
- typename T66,
- typename T67,
- typename T68,
- typename T69,
- typename T70,
- typename T71,
- typename T72,
- typename T73,
- typename T74,
- typename T75,
- typename T76,
- typename T77,
- typename T78,
- typename T79,
- typename T80,
- typename T81,
- typename T82,
- typename T83,
- typename T84,
- typename T85,
- typename T86,
- typename T87,
- typename T88,
- typename T89,
- typename T90,
- typename T91,
- typename T92,
- typename T93,
- typename T94,
- typename T95,
- typename T96,
- typename T97,
- typename T98,
- typename T99,
- typename T100,
- typename T101,
- typename T102,
- typename T103,
- typename T104,
- typename T105,
- typename T106,
- typename T107,
- typename T108,
- typename T109,
- typename T110,
- typename T111,
- typename T112,
- typename T113,
- typename T114,
- typename T115,
- typename T116,
- typename T117,
- typename T118,
- typename T119,
- typename T120,
- typename T121,
- typename T122,
- typename T123,
- typename T124,
- typename T125,
- typename T126>
-struct functionImplementation_<
- T0,
+ typename T1>
+struct functionImplementation_
+< T0,
T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123,
- T124,
- T125,
- T126,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType>
{
typedef detail::KernelFunctorGlobal<
T0,
T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123,
- T124,
- T125,
- T126,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
NullType> FunctorType;
- FunctorType functor_;
+ FunctorType functor_;
- functionImplementation_(const FunctorType &functor) :
- functor_(functor)
- {
- }
-
- typedef std::tr1::function<Event (
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 2))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
const EnqueueArgs&,
T0,
- T1,
- T2,
- T3,
- T4,
- T5,
- T6,
- T7,
- T8,
- T9,
- T10,
- T11,
- T12,
- T13,
- T14,
- T15,
- T16,
- T17,
- T18,
- T19,
- T20,
- T21,
- T22,
- T23,
- T24,
- T25,
- T26,
- T27,
- T28,
- T29,
- T30,
- T31,
- T32,
- T33,
- T34,
- T35,
- T36,
- T37,
- T38,
- T39,
- T40,
- T41,
- T42,
- T43,
- T44,
- T45,
- T46,
- T47,
- T48,
- T49,
- T50,
- T51,
- T52,
- T53,
- T54,
- T55,
- T56,
- T57,
- T58,
- T59,
- T60,
- T61,
- T62,
- T63,
- T64,
- T65,
- T66,
- T67,
- T68,
- T69,
- T70,
- T71,
- T72,
- T73,
- T74,
- T75,
- T76,
- T77,
- T78,
- T79,
- T80,
- T81,
- T82,
- T83,
- T84,
- T85,
- T86,
- T87,
- T88,
- T89,
- T90,
- T91,
- T92,
- T93,
- T94,
- T95,
- T96,
- T97,
- T98,
- T99,
- T100,
- T101,
- T102,
- T103,
- T104,
- T105,
- T106,
- T107,
- T108,
- T109,
- T110,
- T111,
- T112,
- T113,
- T114,
- T115,
- T116,
- T117,
- T118,
- T119,
- T120,
- T121,
- T122,
- T123,
- T124,
- T125,
- T126)> type_;
-
- Event operator()(const EnqueueArgs& enqueueArgs,
+ T1);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
T0 arg0,
- T1 arg1,
- T2 arg2,
- T3 arg3,
- T4 arg4,
- T5 arg5,
- T6 arg6,
- T7 arg7,
- T8 arg8,
- T9 arg9,
- T10 arg10,
- T11 arg11,
- T12 arg12,
- T13 arg13,
- T14 arg14,
- T15 arg15,
- T16 arg16,
- T17 arg17,
- T18 arg18,
- T19 arg19,
- T20 arg20,
- T21 arg21,
- T22 arg22,
- T23 arg23,
- T24 arg24,
- T25 arg25,
- T26 arg26,
- T27 arg27,
- T28 arg28,
- T29 arg29,
- T30 arg30,
- T31 arg31,
- T32 arg32,
- T33 arg33,
- T34 arg34,
- T35 arg35,
- T36 arg36,
- T37 arg37,
- T38 arg38,
- T39 arg39,
- T40 arg40,
- T41 arg41,
- T42 arg42,
- T43 arg43,
- T44 arg44,
- T45 arg45,
- T46 arg46,
- T47 arg47,
- T48 arg48,
- T49 arg49,
- T50 arg50,
- T51 arg51,
- T52 arg52,
- T53 arg53,
- T54 arg54,
- T55 arg55,
- T56 arg56,
- T57 arg57,
- T58 arg58,
- T59 arg59,
- T60 arg60,
- T61 arg61,
- T62 arg62,
- T63 arg63,
- T64 arg64,
- T65 arg65,
- T66 arg66,
- T67 arg67,
- T68 arg68,
- T69 arg69,
- T70 arg70,
- T71 arg71,
- T72 arg72,
- T73 arg73,
- T74 arg74,
- T75 arg75,
- T76 arg76,
- T77 arg77,
- T78 arg78,
- T79 arg79,
- T80 arg80,
- T81 arg81,
- T82 arg82,
- T83 arg83,
- T84 arg84,
- T85 arg85,
- T86 arg86,
- T87 arg87,
- T88 arg88,
- T89 arg89,
- T90 arg90,
- T91 arg91,
- T92 arg92,
- T93 arg93,
- T94 arg94,
- T95 arg95,
- T96 arg96,
- T97 arg97,
- T98 arg98,
- T99 arg99,
- T100 arg100,
- T101 arg101,
- T102 arg102,
- T103 arg103,
- T104 arg104,
- T105 arg105,
- T106 arg106,
- T107 arg107,
- T108 arg108,
- T109 arg109,
- T110 arg110,
- T111 arg111,
- T112 arg112,
- T113 arg113,
- T114 arg114,
- T115 arg115,
- T116 arg116,
- T117 arg117,
- T118 arg118,
- T119 arg119,
- T120 arg120,
- T121 arg121,
- T122 arg122,
- T123 arg123,
- T124 arg124,
- T125 arg125,
- T126 arg126)
+ T1 arg1)
{
return functor_(
enqueueArgs,
arg0,
- arg1,
- arg2,
- arg3,
- arg4,
- arg5,
- arg6,
- arg7,
- arg8,
- arg9,
- arg10,
- arg11,
- arg12,
- arg13,
- arg14,
- arg15,
- arg16,
- arg17,
- arg18,
- arg19,
- arg20,
- arg21,
- arg22,
- arg23,
- arg24,
- arg25,
- arg26,
- arg27,
- arg28,
- arg29,
- arg30,
- arg31,
- arg32,
- arg33,
- arg34,
- arg35,
- arg36,
- arg37,
- arg38,
- arg39,
- arg40,
- arg41,
- arg42,
- arg43,
- arg44,
- arg45,
- arg46,
- arg47,
- arg48,
- arg49,
- arg50,
- arg51,
- arg52,
- arg53,
- arg54,
- arg55,
- arg56,
- arg57,
- arg58,
- arg59,
- arg60,
- arg61,
- arg62,
- arg63,
- arg64,
- arg65,
- arg66,
- arg67,
- arg68,
- arg69,
- arg70,
- arg71,
- arg72,
- arg73,
- arg74,
- arg75,
- arg76,
- arg77,
- arg78,
- arg79,
- arg80,
- arg81,
- arg82,
- arg83,
- arg84,
- arg85,
- arg86,
- arg87,
- arg88,
- arg89,
- arg90,
- arg91,
- arg92,
- arg93,
- arg94,
- arg95,
- arg96,
- arg97,
- arg98,
- arg99,
- arg100,
- arg101,
- arg102,
- arg103,
- arg104,
- arg105,
- arg106,
- arg107,
- arg108,
- arg109,
- arg110,
- arg111,
- arg112,
- arg113,
- arg114,
- arg115,
- arg116,
- arg117,
- arg118,
- arg119,
- arg120,
- arg121,
- arg122,
- arg123,
- arg124,
- arg125,
- arg126);
+ arg1);
}
- operator type_ ()
+
+};
+
+template<
+ typename T0>
+struct functionImplementation_
+< T0,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType>
+{
+ typedef detail::KernelFunctorGlobal<
+ T0,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType,
+ NullType> FunctorType;
+
+ FunctorType functor_;
+
+ functionImplementation_(const FunctorType &functor) :
+ functor_(functor)
+ {
+
+ #if (defined(_WIN32) && defined(_VARIADIC_MAX) && (_VARIADIC_MAX < 1))
+ // Fail variadic expansion for dev11
+ static_assert(0, "Visual Studio has a hard limit of argument count for a std::function expansion. Please define _VARIADIC_MAX to be 10. If you need more arguments than that VC12 and below cannot support it.");
+ #endif
+
+ }
+
+ //! \brief Return type of the functor
+ typedef Event result_type;
+
+ //! \brief Function signature of kernel functor with no event dependency.
+ typedef Event type_(
+ const EnqueueArgs&,
+ T0);
+
+ Event operator()(
+ const EnqueueArgs& enqueueArgs,
+ T0 arg0)
{
- return type_(*this);
+ return functor_(
+ enqueueArgs,
+ arg0);
}
+
};
@@ -74721,55 +12054,8 @@ template <
typename T25 = detail::NullType, typename T26 = detail::NullType,
typename T27 = detail::NullType, typename T28 = detail::NullType,
typename T29 = detail::NullType, typename T30 = detail::NullType,
- typename T31 = detail::NullType, typename T32 = detail::NullType,
- typename T33 = detail::NullType, typename T34 = detail::NullType,
- typename T35 = detail::NullType, typename T36 = detail::NullType,
- typename T37 = detail::NullType, typename T38 = detail::NullType,
- typename T39 = detail::NullType, typename T40 = detail::NullType,
- typename T41 = detail::NullType, typename T42 = detail::NullType,
- typename T43 = detail::NullType, typename T44 = detail::NullType,
- typename T45 = detail::NullType, typename T46 = detail::NullType,
- typename T47 = detail::NullType, typename T48 = detail::NullType,
- typename T49 = detail::NullType, typename T50 = detail::NullType,
- typename T51 = detail::NullType, typename T52 = detail::NullType,
- typename T53 = detail::NullType, typename T54 = detail::NullType,
- typename T55 = detail::NullType, typename T56 = detail::NullType,
- typename T57 = detail::NullType, typename T58 = detail::NullType,
- typename T59 = detail::NullType, typename T60 = detail::NullType,
- typename T61 = detail::NullType, typename T62 = detail::NullType,
- typename T63 = detail::NullType, typename T64 = detail::NullType,
- typename T65 = detail::NullType, typename T66 = detail::NullType,
- typename T67 = detail::NullType, typename T68 = detail::NullType,
- typename T69 = detail::NullType, typename T70 = detail::NullType,
- typename T71 = detail::NullType, typename T72 = detail::NullType,
- typename T73 = detail::NullType, typename T74 = detail::NullType,
- typename T75 = detail::NullType, typename T76 = detail::NullType,
- typename T77 = detail::NullType, typename T78 = detail::NullType,
- typename T79 = detail::NullType, typename T80 = detail::NullType,
- typename T81 = detail::NullType, typename T82 = detail::NullType,
- typename T83 = detail::NullType, typename T84 = detail::NullType,
- typename T85 = detail::NullType, typename T86 = detail::NullType,
- typename T87 = detail::NullType, typename T88 = detail::NullType,
- typename T89 = detail::NullType, typename T90 = detail::NullType,
- typename T91 = detail::NullType, typename T92 = detail::NullType,
- typename T93 = detail::NullType, typename T94 = detail::NullType,
- typename T95 = detail::NullType, typename T96 = detail::NullType,
- typename T97 = detail::NullType, typename T98 = detail::NullType,
- typename T99 = detail::NullType, typename T100 = detail::NullType,
- typename T101 = detail::NullType, typename T102 = detail::NullType,
- typename T103 = detail::NullType, typename T104 = detail::NullType,
- typename T105 = detail::NullType, typename T106 = detail::NullType,
- typename T107 = detail::NullType, typename T108 = detail::NullType,
- typename T109 = detail::NullType, typename T110 = detail::NullType,
- typename T111 = detail::NullType, typename T112 = detail::NullType,
- typename T113 = detail::NullType, typename T114 = detail::NullType,
- typename T115 = detail::NullType, typename T116 = detail::NullType,
- typename T117 = detail::NullType, typename T118 = detail::NullType,
- typename T119 = detail::NullType, typename T120 = detail::NullType,
- typename T121 = detail::NullType, typename T122 = detail::NullType,
- typename T123 = detail::NullType, typename T124 = detail::NullType,
- typename T125 = detail::NullType, typename T126 = detail::NullType,
- typename T127 = detail::NullType>
+ typename T31 = detail::NullType
+>
struct make_kernel :
public detail::functionImplementation_<
T0, T1, T2, T3,
@@ -74779,31 +12065,8 @@ struct make_kernel :
T16, T17, T18, T19,
T20, T21, T22, T23,
T24, T25, T26, T27,
- T28, T29, T30, T31,
- T32, T33, T34, T35,
- T36, T37, T38, T39,
- T40, T41, T42, T43,
- T44, T45, T46, T47,
- T48, T49, T50, T51,
- T52, T53, T54, T55,
- T56, T57, T58, T59,
- T60, T61, T62, T63,
- T64, T65, T66, T67,
- T68, T69, T70, T71,
- T72, T73, T74, T75,
- T76, T77, T78, T79,
- T80, T81, T82, T83,
- T84, T85, T86, T87,
- T88, T89, T90, T91,
- T92, T93, T94, T95,
- T96, T97, T98, T99,
- T100, T101, T102, T103,
- T104, T105, T106, T107,
- T108, T109, T110, T111,
- T112, T113, T114, T115,
- T116, T117, T118, T119,
- T120, T121, T122, T123,
- T124, T125, T126, T127>
+ T28, T29, T30, T31
+ >
{
public:
typedef detail::KernelFunctorGlobal<
@@ -74814,31 +12077,8 @@ public:
T16, T17, T18, T19,
T20, T21, T22, T23,
T24, T25, T26, T27,
- T28, T29, T30, T31,
- T32, T33, T34, T35,
- T36, T37, T38, T39,
- T40, T41, T42, T43,
- T44, T45, T46, T47,
- T48, T49, T50, T51,
- T52, T53, T54, T55,
- T56, T57, T58, T59,
- T60, T61, T62, T63,
- T64, T65, T66, T67,
- T68, T69, T70, T71,
- T72, T73, T74, T75,
- T76, T77, T78, T79,
- T80, T81, T82, T83,
- T84, T85, T86, T87,
- T88, T89, T90, T91,
- T92, T93, T94, T95,
- T96, T97, T98, T99,
- T100, T101, T102, T103,
- T104, T105, T106, T107,
- T108, T109, T110, T111,
- T112, T113, T114, T115,
- T116, T117, T118, T119,
- T120, T121, T122, T123,
- T124, T125, T126, T127> FunctorType;
+ T28, T29, T30, T31
+ > FunctorType;
make_kernel(
const Program& program,
@@ -74852,37 +12092,13 @@ public:
T16, T17, T18, T19,
T20, T21, T22, T23,
T24, T25, T26, T27,
- T28, T29, T30, T31,
- T32, T33, T34, T35,
- T36, T37, T38, T39,
- T40, T41, T42, T43,
- T44, T45, T46, T47,
- T48, T49, T50, T51,
- T52, T53, T54, T55,
- T56, T57, T58, T59,
- T60, T61, T62, T63,
- T64, T65, T66, T67,
- T68, T69, T70, T71,
- T72, T73, T74, T75,
- T76, T77, T78, T79,
- T80, T81, T82, T83,
- T84, T85, T86, T87,
- T88, T89, T90, T91,
- T92, T93, T94, T95,
- T96, T97, T98, T99,
- T100, T101, T102, T103,
- T104, T105, T106, T107,
- T108, T109, T110, T111,
- T112, T113, T114, T115,
- T116, T117, T118, T119,
- T120, T121, T122, T123,
- T124, T125, T126, T127>(
+ T28, T29, T30, T31
+ >(
FunctorType(program, name, err))
{}
make_kernel(
- const Kernel kernel,
- cl_int * err = NULL) :
+ const Kernel kernel) :
detail::functionImplementation_<
T0, T1, T2, T3,
T4, T5, T6, T7,
@@ -74891,36 +12107,12 @@ public:
T16, T17, T18, T19,
T20, T21, T22, T23,
T24, T25, T26, T27,
- T28, T29, T30, T31,
- T32, T33, T34, T35,
- T36, T37, T38, T39,
- T40, T41, T42, T43,
- T44, T45, T46, T47,
- T48, T49, T50, T51,
- T52, T53, T54, T55,
- T56, T57, T58, T59,
- T60, T61, T62, T63,
- T64, T65, T66, T67,
- T68, T69, T70, T71,
- T72, T73, T74, T75,
- T76, T77, T78, T79,
- T80, T81, T82, T83,
- T84, T85, T86, T87,
- T88, T89, T90, T91,
- T92, T93, T94, T95,
- T96, T97, T98, T99,
- T100, T101, T102, T103,
- T104, T105, T106, T107,
- T108, T109, T110, T111,
- T112, T113, T114, T115,
- T116, T117, T118, T119,
- T120, T121, T122, T123,
- T124, T125, T126, T127>(
- FunctorType(kernel, err))
+ T28, T29, T30, T31
+ >(
+ FunctorType(kernel))
{}
};
-#endif
//----------------------------------------------------------------------------------------------------------------------
@@ -74936,6 +12128,7 @@ public:
#undef __GET_IMAGE_INFO_ERR
#undef __GET_SAMPLER_INFO_ERR
#undef __GET_KERNEL_INFO_ERR
+#undef __GET_KERNEL_ARG_INFO_ERR
#undef __GET_KERNEL_WORK_GROUP_INFO_ERR
#undef __GET_PROGRAM_INFO_ERR
#undef __GET_PROGRAM_BUILD_INFO_ERR
@@ -74955,6 +12148,7 @@ public:
#undef __CREATE_USER_EVENT_ERR
#undef __SET_USER_EVENT_STATUS_ERR
#undef __SET_EVENT_CALLBACK_ERR
+#undef __SET_PRINTF_CALLBACK_ERR
#undef __WAIT_FOR_EVENTS_ERR
@@ -74962,6 +12156,7 @@ public:
#undef __SET_KERNEL_ARGS_ERR
#undef __CREATE_PROGRAM_WITH_SOURCE_ERR
#undef __CREATE_PROGRAM_WITH_BINARY_ERR
+#undef __CREATE_PROGRAM_WITH_BUILT_IN_KERNELS_ERR
#undef __BUILD_PROGRAM_ERR
#undef __CREATE_KERNELS_IN_PROGRAM_ERR
@@ -74985,13 +12180,22 @@ public:
#undef __ENQUEUE_TASK_ERR
#undef __ENQUEUE_NATIVE_KERNEL
+#undef __CL_EXPLICIT_CONSTRUCTORS
+
#undef __UNLOAD_COMPILER_ERR
#endif //__CL_USER_OVERRIDE_ERROR_STRINGS
#undef __GET_INFO_HELPER_WITH_RETAIN
+#undef __CL_FUNCTION_TYPE
+
// Extensions
+/**
+ * Deprecated APIs for 1.2
+ */
+#if defined(CL_VERSION_1_1)
#undef __INIT_CL_EXT_FCN_PTR
+#endif // #if defined(CL_VERSION_1_1)
#undef __CREATE_SUB_DEVICES
#if defined(USE_CL_DEVICE_FISSION)
diff --git a/cl_d3d10.h b/cl_d3d10.h
index 082231b..81b0d37 100644
--- a/cl_d3d10.h
+++ b/cl_d3d10.h
@@ -1,5 +1,5 @@
/**********************************************************************************
- * Copyright (c) 2008-2010 The Khronos Group Inc.
+ * Copyright (c) 2008-2012 The Khronos Group Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
diff --git a/cl_d3d11.h b/cl_d3d11.h
index 9700c91..d3c8bdc 100644
--- a/cl_d3d11.h
+++ b/cl_d3d11.h
@@ -1,5 +1,5 @@
/**********************************************************************************
- * Copyright (c) 2008-2010 The Khronos Group Inc.
+ * Copyright (c) 2008-2012 The Khronos Group Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
diff --git a/cl_dx9_media_sharing.h b/cl_dx9_media_sharing.h
index 8df7d4f..1ef543a 100644
--- a/cl_dx9_media_sharing.h
+++ b/cl_dx9_media_sharing.h
@@ -114,7 +114,7 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
- cl_mem * mem_objects,
+ const cl_mem * mem_objects,
cl_uint num_events_in_wait_list,
const cl_event * event_wait_list,
cl_event * event) CL_API_SUFFIX__VERSION_1_2;
diff --git a/cl_ext.h b/cl_ext.h
index 4e92c7e..b4ea42c 100644
--- a/cl_ext.h
+++ b/cl_ext.h
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008-2010 The Khronos Group Inc.
+ * Copyright (c) 2008 - 2012 The Khronos Group Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
@@ -40,9 +40,6 @@ extern "C" {
#include <CL/cl.h>
#endif
-/* cl_khr_fp64 extension - no extension #define since it has no functions */
-#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032
-
/* cl_khr_fp16 extension - no extension #define since it has no functions */
#define CL_DEVICE_HALF_FP_CONFIG 0x1033
@@ -118,6 +115,48 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)(
cl_uint * /* num_platforms */);
+/* Extension: cl_khr_image2D_buffer
+ *
+ * This extension allows a 2D image to be created from a cl_mem buffer without a copy.
+ * The type associated with a 2D image created from a buffer in an OpenCL program is image2d_t.
+ * Both the sampler and sampler-less read_image built-in functions are supported for 2D images
+ * and 2D images created from a buffer. Similarly, the write_image built-ins are also supported
+ * for 2D images created from a buffer.
+ *
+ * When the 2D image from buffer is created, the client must specify the width,
+ * height, image format (i.e. channel order and channel data type) and optionally the row pitch
+ *
+ * The pitch specified must be a multiple of CL_DEVICE_IMAGE_PITCH_ALIGNMENT pixels.
+ * The base address of the buffer must be aligned to CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT pixels.
+ */
+
+/*************************************
+ * cl_khr_initalize_memory extension *
+ *************************************/
+
+#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x200E
+
+
+/**************************************
+ * cl_khr_terminate_context extension *
+ **************************************/
+
+#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x200F
+#define CL_CONTEXT_TERMINATE_KHR 0x2010
+
+#define cl_khr_terminate_context 1
+extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR(cl_context /* context */) CL_EXT_SUFFIX_VERSION_1_2;
+
+typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context /* context */) CL_EXT_SUFFIX_VERSION_1_2;
+
+
+/*
+ * Extension: cl_khr_spir
+ *
+ * This extension adds support to create an OpenCL program object from a
+ * Standard Portable Intermediate Representation (SPIR) instance
+ */
+
/******************************************
* cl_nv_device_attribute_query extension *
******************************************/
@@ -136,7 +175,6 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)(
*********************************/
#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036
-
#ifdef CL_VERSION_1_1
/***********************************
* cl_ext_device_fission extension *
diff --git a/cl_gl.h b/cl_gl.h
index e8586e2..eb9ce5c 100644
--- a/cl_gl.h
+++ b/cl_gl.h
@@ -1,5 +1,5 @@
/**********************************************************************************
- * Copyright (c) 2011 The Khronos Group Inc.
+ * Copyright (c) 2008 - 2012 The Khronos Group Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
@@ -103,24 +103,22 @@ clEnqueueReleaseGLObjects(cl_command_queue /* command_queue */,
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
-#ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS
-#warning CL_USE_DEPRECATED_OPENCL_1_1_APIS is defined. These APIs are unsupported and untested in OpenCL 1.2!
- extern CL_API_ENTRY cl_mem CL_API_CALL
- clCreateFromGLTexture2D(cl_context /* context */,
- cl_mem_flags /* flags */,
- cl_GLenum /* target */,
- cl_GLint /* miplevel */,
- cl_GLuint /* texture */,
- cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
+// Deprecated OpenCL 1.1 APIs
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
+clCreateFromGLTexture2D(cl_context /* context */,
+ cl_mem_flags /* flags */,
+ cl_GLenum /* target */,
+ cl_GLint /* miplevel */,
+ cl_GLuint /* texture */,
+ cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
- extern CL_API_ENTRY cl_mem CL_API_CALL
- clCreateFromGLTexture3D(cl_context /* context */,
- cl_mem_flags /* flags */,
- cl_GLenum /* target */,
- cl_GLint /* miplevel */,
- cl_GLuint /* texture */,
- cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
-#endif /* CL_USE_DEPRECATED_OPENCL_1_2_APIS */
+extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
+clCreateFromGLTexture3D(cl_context /* context */,
+ cl_mem_flags /* flags */,
+ cl_GLenum /* target */,
+ cl_GLint /* miplevel */,
+ cl_GLuint /* texture */,
+ cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
/* cl_khr_gl_sharing extension */
diff --git a/cl_gl_ext.h b/cl_gl_ext.h
index 7c9b64c..77d5353 100644
--- a/cl_gl_ext.h
+++ b/cl_gl_ext.h
@@ -1,5 +1,5 @@
/**********************************************************************************
- * Copyright (c) 2008-2010 The Khronos Group Inc.
+ * Copyright (c) 2008-2012 The Khronos Group Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
diff --git a/cl_platform.h b/cl_platform.h
index c823430..cf2b721 100644
--- a/cl_platform.h
+++ b/cl_platform.h
@@ -1,5 +1,5 @@
/**********************************************************************************
- * Copyright (c) 2008-2010 The Khronos Group Inc.
+ * Copyright (c) 2008-2012 The Khronos Group Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
@@ -46,22 +46,75 @@ extern "C" {
#endif
#ifdef __APPLE__
- #define CL_EXTENSION_WEAK_LINK __attribute__((weak_import))
- #define CL_API_SUFFIX__VERSION_1_0 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
- #define CL_EXT_SUFFIX__VERSION_1_0 CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
- #define CL_API_SUFFIX__VERSION_1_1 CL_EXTENSION_WEAK_LINK
- #define CL_EXT_SUFFIX__VERSION_1_1 CL_EXTENSION_WEAK_LINK
- #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+ #define CL_EXTENSION_WEAK_LINK __attribute__((weak_import))
+ #define CL_API_SUFFIX__VERSION_1_0 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+ #define CL_EXT_SUFFIX__VERSION_1_0 CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+ #define CL_API_SUFFIX__VERSION_1_1 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+ #define GCL_API_SUFFIX__VERSION_1_1 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+ #define CL_EXT_SUFFIX__VERSION_1_1 CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+ #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7
+
+ #ifdef AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+ #define CL_API_SUFFIX__VERSION_1_2 AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+ #define GCL_API_SUFFIX__VERSION_1_2 AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+ #define CL_EXT_SUFFIX__VERSION_1_2 CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
+ #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
+ #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8
+ #else
+ #warning This path should never happen outside of internal operating system development. AvailabilityMacros do not function correctly here!
+ #define CL_API_SUFFIX__VERSION_1_2 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+ #define GCL_API_SUFFIX__VERSION_1_2 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+ #define CL_EXT_SUFFIX__VERSION_1_2 CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+ #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED CL_EXTENSION_WEAK_LINK AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
+ #endif
#else
- #define CL_EXTENSION_WEAK_LINK
+ #define CL_EXTENSION_WEAK_LINK
#define CL_API_SUFFIX__VERSION_1_0
#define CL_EXT_SUFFIX__VERSION_1_0
#define CL_API_SUFFIX__VERSION_1_1
#define CL_EXT_SUFFIX__VERSION_1_1
- #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
#define CL_API_SUFFIX__VERSION_1_2
#define CL_EXT_SUFFIX__VERSION_1_2
- #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
+
+ #ifdef __GNUC__
+ #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
+ #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
+ #define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED
+ #else
+ #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED __attribute__((deprecated))
+ #define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED
+ #endif
+
+ #ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS
+ #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
+ #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
+ #else
+ #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED __attribute__((deprecated))
+ #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
+ #endif
+ #elif _WIN32
+ #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS
+ #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
+ #define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED
+ #else
+ #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
+ #define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED __declspec(deprecated)
+ #endif
+
+ #ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS
+ #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
+ #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
+ #else
+ #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
+ #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED __declspec(deprecated)
+ #endif
+ #else
+ #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED
+ #define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED
+
+ #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED
+ #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
+ #endif
#endif
#if (defined (_WIN32) && defined(_MSC_VER))
@@ -255,7 +308,7 @@ typedef double cl_double __attribute__((aligned(8)));
#include <stddef.h>
-/* Mirror types to GL types. Mirror types allow us to avoid deciding which headers to load based on whether we are using GL or GLES here. */
+/* Mirror types to GL types. Mirror types allow us to avoid deciding which 87s to load based on whether we are using GL or GLES here. */
typedef unsigned int cl_GLuint;
typedef int cl_GLint;
typedef unsigned int cl_GLenum;
@@ -1173,13 +1226,13 @@ typedef union
/* Macro to facilitate debugging
* Usage:
* Place CL_PROGRAM_STRING_DEBUG_INFO on the line before the first line of your source.
- * The first line ends with: CL_PROGRAM_STRING_BEGIN \"
+ * The first line ends with: CL_PROGRAM_STRING_DEBUG_INFO \"
* Each line thereafter of OpenCL C source must end with: \n\
* The last line ends in ";
*
* Example:
*
- * const char *my_program = CL_PROGRAM_STRING_BEGIN "\
+ * const char *my_program = CL_PROGRAM_STRING_DEBUG_INFO "\
* kernel void foo( int a, float * b ) \n\
* { \n\
* // my comment \n\
diff --git a/opencl.h b/opencl.h
index 26a6389..3f00524 100644
--- a/opencl.h
+++ b/opencl.h
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008-2010 The Khronos Group Inc.
+ * Copyright (c) 2008-2012 The Khronos Group Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-opencl/khronos-opencl-headers.git
More information about the Pkg-opencl-commits
mailing list