Home > Back-end >  how to run a membber function with QtConcurrrent Qt6? type 'decay_t cannot be used prior to �
how to run a membber function with QtConcurrrent Qt6? type 'decay_t cannot be used prior to �

Time:04-05

i'm trying to run a member function but but i got an error , help me please

i tried with this line of code

QFuture<qlonglong> future = QtConcurrent::run(this,&backD::analysa);

this is a screen shot 'lol' of the errors and analysa() is a methode that returns a qlonglong

CodePudding user response:

Try QtConcurrent::run([this]{ return analysa(); }); or QtConcurrent::run([this] -> qlonglong { return analysa(); });, whichever compiles in your case.

CodePudding user response:

i tried many version before asking here and the QtConcurrent::run(this->analysa()); is one of them, i'ts looks like the lambda form works only with void and i'm using qlonglong. her is my the member methode analysa

 qlonglong  backD::analysa()
{
QString currentPath = tabWidget::currentWidget()->fsCurrentPath();
qlonglong size=0;

QDirIterator it(currentPath,QStringList()<<"*.*",QDir::Files,QDirIterator::Subdirectories);
while(it.hasNext())
{


    QFileInfo infos(it.next());

    size  = infos.size();

}
return size;}
  • Related