std::promise<>
が非参照型でインスタンス化されている場合、set_value()
メソッドには値オーバーロードによる1回のオーバーロードとは異なる2つの異なるオーバーロードがあります。なぜstd :: promise :: set_value()に2つのオーバーロードがあるのです
ので、代わりに次の2つの
std::promise::set_value(const Type& value);
std::promise::set_value(Type&& value);
一つだけ。これは、少なくとも次の2つの利点が
約束に値を移動するには、ユーザーを有効にしている
std::promise::set_value(Type value);
/将来、API引数が値型であるためコピーがサポートされていない場合、値がコピーされることは明らかです。さらに、関数に渡される式が正値である場合、コンパイラによって完全に省略することができます(特にC++では特にそうです)
クラスが値のコピーをたくさん必要とする点を伝えます同じタスクを達成する2つの過負荷よりも優れています。
私は(限り、所有権が懸念していると)同様のAPIを作っていたと私はCが採用し、デザインの決定に利益をもたらすと思いまし++標準ライブラリは、私が言及したものに対立するものとして持っています。
ありがとうございます!
これは理にかなっており、大きなアドバイスです、ありがとうございます! – Curious