я следующую функцию для заполнения вектора т с шагом от -time/2 времени/2 и размер шага DT:Thrust: Operator «*» не поддерживается
#define THRUST_PREC thrust::complex<double>
__host__ void generate_time(thrust::device_vector<THRUST_PREC> *t, const double dt, const double time)
{
THRUST_PREC start = -time/2.0;
THRUST_PREC step = dt;
thrust::sequence((*t).begin(), (*t).end(), start, step);
}
При компиляции, я получаю error : no operator "*" matches these operands
, Зачем? Есть ли способ заполнить вектор так, как я, или я должен заполнить его по-старому (aka loop)?
Edit: Полная ошибка: Error 1 error : no operator "*" matches these operands C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include\thrust\system\detail\generic\sequence.inl 48 1 FFT_test
Просьба предоставить [mcve] и предоставить * полный набор ошибок и примечаний * из компилятора не только exerpt. Если вы поняли сообщение об ошибке, вам не нужно будет спрашивать здесь, и если вы не понимаете, почему, по вашему мнению, резюме достаточно? Я имею в виду, я не могу поверить, что это не привело к тому, что произошла ошибка. – Yakk
@Yakk: Я добавил полную ошибку, вот и все, что я получаю в MSVC ... –
Не знаю, я скопировал ошибку непосредственно из MSVC. При удалении/комментировании этой функции ошибка исчезла. При добавлении/раскомментировании я получаю указанную выше ошибку. –