ホームページ  >  記事  >  バックエンド開発  >  非 Const 参照を `std::async` に渡せないのはなぜですか?

非 Const 参照を `std::async` に渡せないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-28 06:32:30725ブラウズ

Why Can't I Pass Non-Const References to `std::async`?

std::async への非 const 参照の受け渡し

std::async で、引数として非 const 参照を渡すと、エラー中。これは意図的な設計上の選択です。

根拠

関数オブジェクトが参照によって引数を受け入れるかどうかを判断することは、常に実行可能であるとは限りません。したがって、 std::async はすべての引数をコピーするか、参照によってそれらを受け入れる必要があります。引数をコピーすると、ぶら下がったり競合状態が発生したりすることがないため、安全性が確保されます。

例外: std::ref

非 const 参照パラメータを許可するには、std::ref使用できます。これは、潜在的に危険な参照セマンティクスに対する明示的なオプトインであり、未結合参照と競合状態を慎重に処理する必要があります。

以上が非 Const 参照を `std::async` に渡せないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。