@@ -75,8 +75,8 @@ auto make_tensor( const index_t (&shape)[RANK],
7575 * @param shape Shape specification for the tensor
7676 * @returns New tensor
7777 **/
78- template <typename T, typename ShapeType,
79- std:: enable_if_t <!is_matx_descriptor_v <ShapeType> && !std::is_array_v<typename remove_cvref <ShapeType>::type>, bool > = true >
78+ template <typename T, typename ShapeType>
79+ requires (!is_matx_descriptor <ShapeType> && !std::is_array_v<remove_cvref_t <ShapeType>>)
8080auto make_tensor(Storage<T> storage, ShapeType &&shape) {
8181 MATX_NVTX_START (" " , matx::MATX_NVTX_LOG_API)
8282
@@ -95,7 +95,8 @@ auto make_tensor(Storage<T> storage, ShapeType &&shape) {
9595 * @param space memory space to allocate in. Default is manged memory.
9696 * @param stream cuda stream to allocate in (only applicable to async allocations)
9797 **/
98- template <typename TensorType, std::enable_if_t < is_tensor_view_v<TensorType>, bool > = true >
98+ template <typename TensorType>
99+ requires is_tensor<TensorType>
99100void make_tensor ( TensorType &tensor,
100101 const index_t (&shape)[TensorType::Rank()],
101102 matxMemorySpace_t space = MATX_MANAGED_MEMORY,
@@ -156,10 +157,10 @@ auto make_tensor_p( const index_t (&shape)[RANK],
156157 * @returns New tensor
157158 *
158159 **/
159- template <typename T, typename ShapeType,
160- std:: enable_if_t < !is_matx_shape_v <ShapeType> &&
161- !is_matx_descriptor_v <ShapeType> &&
162- !std::is_array_v<typename remove_cvref <ShapeType>::type>, bool > = true >
160+ template <typename T, typename ShapeType>
161+ requires (!is_matx_shape <ShapeType> &&
162+ !is_matx_descriptor <ShapeType> &&
163+ !std::is_array_v<remove_cvref_t <ShapeType>>)
163164auto make_tensor( ShapeType &&shape,
164165 matxMemorySpace_t space = MATX_MANAGED_MEMORY,
165166 cudaStream_t stream = 0 ) {
@@ -191,8 +192,8 @@ auto make_tensor( ShapeType &&shape,
191192 * @returns New tensor
192193 *
193194 **/
194- template <typename TensorType,typename ShapeType,
195- std:: enable_if_t <is_tensor_view_v< TensorType> && !std::is_array_v<typename remove_cvref <ShapeType>::type>, bool > = true >
195+ template <typename TensorType, typename ShapeType>
196+ requires (is_tensor< TensorType> && !std::is_array_v<remove_cvref_t <ShapeType>>)
196197auto make_tensor( TensorType &tensor,
197198 ShapeType &&shape,
198199 matxMemorySpace_t space = MATX_MANAGED_MEMORY,
@@ -218,9 +219,9 @@ auto make_tensor( TensorType &tensor,
218219 * @returns Pointer to new tensor
219220 *
220221 **/
221- template <typename T, typename ShapeType,
222- std:: enable_if_t < !is_matx_shape_v <ShapeType> &&
223- !std::is_array_v<typename remove_cvref <ShapeType>::type>, bool > = true >
222+ template <typename T, typename ShapeType>
223+ requires (!is_matx_shape <ShapeType> &&
224+ !std::is_array_v<remove_cvref_t <ShapeType>>)
224225auto make_tensor_p( ShapeType &&shape,
225226 matxMemorySpace_t space = MATX_MANAGED_MEMORY,
226227 cudaStream_t stream = 0 ) {
@@ -266,8 +267,8 @@ auto make_tensor( [[maybe_unused]] const std::initializer_list<detail::no_size_t
266267 * @returns New tensor
267268 *
268269 **/
269- template <typename TensorType,
270- std:: enable_if_t <is_tensor_view_v< TensorType>, bool > = true >
270+ template <typename TensorType>
271+ requires is_tensor< TensorType>
271272auto make_tensor ( TensorType &tensor,
272273 matxMemorySpace_t space = MATX_MANAGED_MEMORY,
273274 cudaStream_t stream = 0 ) {
@@ -339,8 +340,8 @@ auto make_tensor( T *data,
339340 * Shape of tensor
340341 * @returns New tensor
341342 **/
342- template <typename TensorType,
343- std:: enable_if_t <is_tensor_view_v< TensorType>, bool > = true >
343+ template <typename TensorType>
344+ requires is_tensor< TensorType>
344345auto make_tensor ( TensorType &tensor,
345346 typename TensorType::value_type *data,
346347 const index_t (&shape)[TensorType::Rank()]) {
@@ -370,8 +371,8 @@ auto make_tensor( TensorType &tensor,
370371 * If this class owns memory of data
371372 * @returns New tensor
372373 **/
373- template <typename T, typename ShapeType,
374- std:: enable_if_t <!is_matx_descriptor_v <ShapeType> && !std::is_array_v<typename remove_cvref <ShapeType>::type>, bool > = true >
374+ template <typename T, typename ShapeType>
375+ requires (!is_matx_descriptor <ShapeType> && !std::is_array_v<remove_cvref_t <ShapeType>>)
375376auto make_tensor( T *data,
376377 ShapeType &&shape,
377378 bool owning = false ) {
@@ -398,8 +399,8 @@ auto make_tensor( T *data,
398399 * Shape of tensor
399400 * @returns New tensor
400401 **/
401- template <typename TensorType,
402- std:: enable_if_t <is_tensor_view_v< TensorType>, bool > = true >
402+ template <typename TensorType>
403+ requires is_tensor< TensorType>
403404auto make_tensor ( TensorType &tensor,
404405 typename TensorType::value_type *data,
405406 typename TensorType::shape_container &&shape) {
@@ -440,8 +441,8 @@ auto make_tensor( T *ptr,
440441 * Pointer to data
441442 * @returns New tensor
442443 **/
443- template <typename TensorType,
444- std:: enable_if_t <is_tensor_view_v< TensorType>, bool > = true >
444+ template <typename TensorType>
445+ requires is_tensor< TensorType>
445446auto make_tensor ( TensorType &tensor,
446447 typename TensorType::value_type *ptr) {
447448 MATX_LOG_DEBUG (" make_tensor(tensor&, ptr, 0D): ptr={}" , reinterpret_cast <void *>(ptr));
@@ -462,8 +463,8 @@ auto make_tensor( TensorType &tensor,
462463 * If this class owns memory of data
463464 * @returns New tensor
464465 **/
465- template <typename T, typename ShapeType,
466- std:: enable_if_t <!is_matx_descriptor_v <ShapeType> && !std::is_array_v<typename remove_cvref <ShapeType>::type>, bool > = true >
466+ template <typename T, typename ShapeType>
467+ requires (!is_matx_descriptor <ShapeType> && !std::is_array_v<remove_cvref_t <ShapeType>>)
467468auto make_tensor_p( T *const data,
468469 ShapeType &&shape,
469470 bool owning = false ) {
@@ -515,9 +516,9 @@ auto make_tensor( const index_t (&shape)[RANK],
515516 * Custom allocator (PMR allocator, custom allocator pointer, etc.)
516517 * @returns New tensor
517518 **/
518- template <typename T, typename ShapeType, typename Allocator,
519- std:: enable_if_t <!is_matx_shape_v <ShapeType> && !is_matx_descriptor_v <ShapeType> &&
520- !std::is_array_v<typename remove_cvref <ShapeType>::type>, bool > = true >
519+ template <typename T, typename ShapeType, typename Allocator>
520+ requires (!is_matx_shape <ShapeType> && !is_matx_descriptor <ShapeType> &&
521+ !std::is_array_v<remove_cvref_t <ShapeType>>)
521522auto make_tensor( ShapeType &&shape,
522523 Allocator&& alloc) {
523524 MATX_NVTX_START (" " , matx::MATX_NVTX_LOG_API)
@@ -540,8 +541,8 @@ auto make_tensor( ShapeType &&shape,
540541 * @param alloc
541542 * Custom allocator (PMR allocator, custom allocator pointer, etc.)
542543 **/
543- template <typename TensorType, typename Allocator,
544- std:: enable_if_t <is_tensor_view_v< TensorType>, bool > = true >
544+ template <typename TensorType, typename Allocator>
545+ requires is_tensor< TensorType>
545546void make_tensor ( TensorType &tensor,
546547 const index_t (&shape)[TensorType::Rank()],
547548 Allocator&& alloc) {
@@ -569,9 +570,9 @@ void make_tensor( TensorType &tensor,
569570 * @param alloc
570571 * Custom allocator (PMR allocator, custom allocator pointer, etc.)
571572 **/
572- template <typename TensorType, typename ShapeType, typename Allocator,
573- std:: enable_if_t <is_tensor_view_v <TensorType> &&
574- !std::is_array_v<typename remove_cvref <ShapeType>::type>, bool > = true >
573+ template <typename TensorType, typename ShapeType, typename Allocator>
574+ requires (is_tensor <TensorType> &&
575+ !std::is_array_v<remove_cvref_t <ShapeType>>)
575576void make_tensor( TensorType &tensor,
576577 ShapeType &&shape,
577578 Allocator&& alloc) {
@@ -595,7 +596,8 @@ void make_tensor( TensorType &tensor,
595596 * If this class owns memory of data
596597 * @returns New tensor
597598 **/
598- template <typename T, typename D, std::enable_if_t <is_matx_descriptor_v<typename remove_cvref<D>::type>, bool > = true >
599+ template <typename T, typename D>
600+ requires is_matx_descriptor<remove_cvref_t <D>>
599601auto make_tensor ( T* const data,
600602 D &&desc,
601603 bool owning = false ) {
@@ -620,8 +622,8 @@ auto make_tensor( T* const data,
620622 * Tensor descriptor (tensor_desc_t)
621623 * @returns New tensor
622624 **/
623- template <typename TensorType,
624- std:: enable_if_t <is_tensor_view_v< TensorType>, bool > = true >
625+ template <typename TensorType>
626+ requires is_tensor< TensorType>
625627auto make_tensor ( TensorType &tensor,
626628 typename TensorType::value_type* const data,
627629 typename TensorType::desc_type &&desc) {
@@ -642,7 +644,8 @@ auto make_tensor( TensorType &tensor,
642644 * @param stream cuda stream to allocate in (only applicable to async allocations)
643645 * @returns New tensor
644646 **/
645- template <typename T, typename D, std::enable_if_t <is_matx_descriptor_v<typename remove_cvref<D>::type>, bool > = true >
647+ template <typename T, typename D>
648+ requires is_matx_descriptor<remove_cvref_t <D>>
646649auto make_tensor ( D &&desc,
647650 matxMemorySpace_t space = MATX_MANAGED_MEMORY,
648651 cudaStream_t stream = 0 ) {
@@ -666,8 +669,8 @@ auto make_tensor( D &&desc,
666669 * @param stream cuda stream to allocate in (only applicable to async allocations)
667670 * @returns New tensor
668671 **/
669- template <typename TensorType,
670- std:: enable_if_t <is_tensor_view_v< TensorType> && is_matx_descriptor_v <typename TensorType::desc_type>, bool > = true >
672+ template <typename TensorType>
673+ requires (is_tensor< TensorType> && is_matx_descriptor <typename TensorType::desc_type>)
671674auto make_tensor( TensorType &&tensor,
672675 typename TensorType::desc_type &&desc,
673676 matxMemorySpace_t space = MATX_MANAGED_MEMORY,
@@ -731,8 +734,8 @@ auto make_tensor( T *const data,
731734 * Strides of tensor
732735 * @returns New tensor
733736 **/
734- template <typename TensorType,
735- std:: enable_if_t <is_tensor_view_v< TensorType>, bool > = true >
737+ template <typename TensorType>
738+ requires is_tensor< TensorType>
736739auto make_tensor ( TensorType &tensor,
737740 typename TensorType::value_type *const data,
738741 const index_t (&shape)[TensorType::Rank()],
@@ -771,8 +774,8 @@ auto make_static_tensor() {
771774 return tensor_t <T, desc.Rank (), decltype (desc)>{std::move (storage), std::move (desc)};
772775}
773776
774- template <typename TensorType,
775- std:: enable_if_t <is_tensor_view_v< TensorType>, bool > = true >
777+ template <typename TensorType>
778+ requires is_tensor< TensorType>
776779auto make_tensor ( TensorType &tensor,
777780 const DLManagedTensor dlp_tensor) {
778781 MATX_NVTX_START (" " , matx::MATX_NVTX_LOG_API)
0 commit comments