簡単な質問です。なぜstd :: copy_nはstd :: size_tではなくテンプレートパラメータを取るのですか?
template<class InputIt, class Size, class OutputIt>
OutputIt copy_n(InputIt first, Size count, OutputIt result);
なぜstd::copy_n
は、単にstd::size_t
のコピーの代わりになるだろう要素の数の種類を取るのでしょうか?私は理由を考えることができません。オリジナルの根拠について推測
template<class InputIt, class OutputIt>
OutputIt copy_n(InputIt first, std::size_t count, OutputIt result);
もしcountが 'std :: size_t'ならば、関数がパラメータcountが' signed int'で負の値を持つ関数を突然呼び出すと、積分プロモーションが行われます。未定義の動作。 – Danh
明らかなケースは、必要なサイズが 'size_t'の最大値よりも大きくなる可能性がある場合です。 –