         // Signed integer type for global offsets
         typedef int OffsetT;
 
+        // We cast away const-ness, but will *not* write to these arrays.
+        // `DispatchRadixSort::Dispatch` will allocate temporary storage and
+        // create a new double-buffer internally when the `is_overwrite_ok` flag
+        // is not set.
+        constexpr bool is_overwrite_okay = false;
         DoubleBuffer<KeyT>       d_keys(const_cast<KeyT*>(d_keys_in), d_keys_out);
         DoubleBuffer<ValueT>     d_values(const_cast<ValueT*>(d_values_in), d_values_out);
 

            num_items,
            begin_bit,
            end_bit,
            true,
            stream,
            debug_synchronous);
    }

            num_items,
            begin_bit,
            end_bit,
            is_overwrite_okay,
            stream,
            debug_synchronous);
    }
