make_ready_future<void> bug

オープン
#341 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
cpp
領域
backend

調査の方向性

future.hpp の 4388 行付近から始め、make_ready_future を使って Boost 1.76.0 で問題を再現してください。promise と可変長引数オーバーロードのオーバーロード解決を調査してください。void 専用の関数が選択され、利用できない emplace メソッドを呼び出そうとしなければ完了です。

索引モデルが issue の本文から書いたものです。

説明

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

主要言語
C++
スター
213
フォーク
171
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

boostorg/thread のほかの issue

boostorg/thread の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。