make_ready_future<void> bug

Aperta
#341 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp
Ambito
backend

Direzione di ricerca

Inizia in future.hpp intorno alla riga 4388 e riproduci il problema con Boost 1.76.0 usando make_ready_future. Esamina la risoluzione degli overload per promise e l’overload variadico; il lavoro è completato quando viene selezionata la funzione specifica per void senza tentare di chiamare il metodo emplace non disponibile.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Used boost version 1.76.0

next code from future.hpp, line 4388
promise<void> have no emplace method

 // variadic overload
#if ! defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
  template <class T, class ...Args>
  BOOST_THREAD_FUTURE<T> make_ready_future(Args&&... args)
  {
    promise<T> p;
    p.emplace(forward<Args>(args)...);
    return p.get_future();

  }
#endif

header contains correct function for promise<void>, but compiler always select variadic-templated method instead of normal

Lingua principale
C++
Stelle
213
Fork
171
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di boostorg/thread

Tutte le issue di boostorg/thread

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.