Tipo de valor de retorno de thrust :: remove_if

Eu tenho duas matrizes de inteirosdmap edflag no dispositivo do mesmo comprimento e eu envolvi-os com ponteiros de dispositivo de impulso,dmapt edflagt

Existem alguns elementos na matriz dmap com valor -1. Eu quero remover esses -1 e os valores correspondentes da matriz dflag.

Eu estou usando a função remove_if para fazer isso, mas não consigo descobrir qual é o valor de retorno desta chamada ou como devo usar esse valor retornado para obter.

(Eu quero passar esses arrays reduzidos para oreduce_by_key função onde dflagt será usado como as chaves. )

Eu estou usando a seguinte chamada para fazer a redução. Por favor, deixe-me saber como posso armazenar o valor retornado em uma variável e usá-lo para abordar as matrizes individuaisdflag edmap

thrust::remove_if( 
    thrust::make_zip_iterator(thrust::make_tuple(dmapt, dflagt)), 
    thrust::make_zip_iterator(thrust::make_tuple(dmapt+numindices, dflagt+numindices)), 
    minus_one_equality_test() 
); 

onde o predador functor usado acima é definido como

struct minus_one_equality_test
{ 
    typedef typename thrust::tuple<int,int> Tuple; 
    __host__ __device__ 
    bool operator()(const Tuple& a ) 
    { 
        return  thrust::get<0>(a) ==  (-1); 
    } 
} 

questionAnswers(1)

yourAnswerToTheQuestion