diff --git a/src/TNL/Containers/Algorithms/ArrayOperationsCuda_impl.h b/src/TNL/Containers/Algorithms/ArrayOperationsCuda_impl.h
index 432bfa85496ac0a62309db9f18b66a70e4c2f8c0..2963d547de517618eea189156c1e952bfe92982d 100644
--- a/src/TNL/Containers/Algorithms/ArrayOperationsCuda_impl.h
+++ b/src/TNL/Containers/Algorithms/ArrayOperationsCuda_impl.h
@@ -227,9 +227,10 @@ containsValue( const Element* data,
    TNL_ASSERT_GE( size, 0, "" );
    if( size == 0 ) return false;
    bool result = false;
-   Algorithms::ParallelReductionContainsValue< Element > reductionContainsValue;
+   using Operation = Algorithms::ParallelReductionContainsValue< Element >;
+   Operation reductionContainsValue;
    reductionContainsValue.setValue( value );
-   Reduction< Devices::Cuda >::reduce( reductionContainsValue, size, data, 0, result );
+   Reduction< Devices::Cuda >::template reduce< Operation, Index >( reductionContainsValue, size, data, 0, result );
    return result;
 }
 
@@ -245,9 +246,10 @@ containsOnlyValue( const Element* data,
    TNL_ASSERT_GE( size, 0, "" );
    if( size == 0 ) return false;
    bool result = false;
-   Algorithms::ParallelReductionContainsOnlyValue< Element > reductionContainsOnlyValue;
+   using Operation = Algorithms::ParallelReductionContainsOnlyValue< Element >;
+   Operation reductionContainsOnlyValue;
    reductionContainsOnlyValue.setValue( value );
-   Reduction< Devices::Cuda >::reduce( reductionContainsOnlyValue, size, data, 0, result );
+   Reduction< Devices::Cuda >::template reduce< Operation, Index >( reductionContainsOnlyValue, size, data, 0, result );
    return result;
 }