Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-112302

QThreadPool::start() overload taking move-only functions

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • 6.4.3
    • None
    • c080d1e64 (dev)

    Description

      QThreadPool::start() has an overload that takes a std::function. However, since std::function must be copyable, it's not possible to pass move-only lambdas. For example

      FileDescriptor fd{42};
      // FileDescriptor is move only
      
      QThreadPool::globalInstance()->start([fd = std::move(fd)]() mutable {
          // some work
          flush(std::move(fd)); // move the file descriptor ownership to flush()
      });
      

      Attachments

        Activity

          People

            allan.jensen Allan Sandfeld Jensen
            zzag Vlad Zahorodnii
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: