diff --git a/adoc/chapters/programming_interface.adoc b/adoc/chapters/programming_interface.adoc index c0193c56a..4d2cfe943 100644 --- a/adoc/chapters/programming_interface.adoc +++ b/adoc/chapters/programming_interface.adoc @@ -11964,6 +11964,9 @@ It can be constructed from integers. The SYCL [code]#range# class template provides the common by-value semantics (see <>). +Every instantiation of the SYCL [code]#range# class template is a trivially +copyable type. + A synopsis of the SYCL [code]#range# class is provided below. The constructors, member functions and non-member functions of the SYCL [code]#range# class are listed in <>, @@ -12211,6 +12214,9 @@ which the kernel is to be executed, and the range of each work group. The SYCL [code]#nd_range# class template provides the common by-value semantics (see <>). +Every instantiation of the SYCL [code]#nd_range# class template is a trivially +copyable type. + A synopsis of the SYCL [code]#nd_range# class is provided below. The constructors and member functions of the SYCL [code]#nd_range# class are listed in <> and <> @@ -12295,6 +12301,9 @@ as a [code]#size_t#. The SYCL [code]#id# class template provides the common by-value semantics (see <>). +Every instantiation of the SYCL [code]#id# class template is a trivially +copyable type. + A synopsis of the SYCL [code]#id# class is provided below. The constructors, member functions and non-member functions of the SYCL [code]#id# class are listed in <>, <> @@ -17318,12 +17327,8 @@ allowable types for a kernel parameter: - [code]#unsampled_image_accessor# when templated with [code]#image_target::device#; - [code]#sampled_image_accessor# when templated with - [code]#image_target::device#; - - [code]#stream#; - - [code]#id#; - - [code]#range#; - - [code]#marray# when [code]#T# is <>; - - [code]#vec#. + [code]#image_target::device#; and + - [code]#stream#. * An array of element types [code]#T# is a legal parameter type if [code]#T# is a legal parameter type. @@ -17900,6 +17905,9 @@ The element type parameter, [code]#DataT#, must be the cv-unqualified version of one of the following: one of the built-in scalar data types listed in <>, [code]#half#, or [code]#sycl::byte#. +Every instantiation of the SYCL [code]#vec# class template is a trivially +copyable type. + An instance of the SYCL [code]#vec# class template can be implicitly converted to an instance of the data type when the number of elements is [code]#1# in order to allow single element vectors and scalars to be convertible with each @@ -19627,6 +19635,9 @@ the [code]#std::size_t# type. The element type parameter, [code]#DataT#, must be a _numeric type_ as it is defined by {cpp} standard. +If [code]#DataT# is a trivially copyable type, then [code]#marray# is a trivially copyable type. + An instance of the [code]#marray# class template can also be implicitly converted to an instance of the data type when the number of elements is [code]#1# in order to allow single element arrays and scalars to be convertible