どうしたらいいのですか? memcpy(dataCopy、data、length);抽象データをコピーするT?memcpyとC++クラスのテンプレート - どのように使用するのですか?
抽象的なTが安全でない場合は、TがPOD(普通の古いデータ、基本的にはC構造体)であることを知っているとします。
どうしたらいいのですか? memcpy(dataCopy、data、length);抽象データをコピーするT?memcpyとC++クラスのテンプレート - どのように使用するのですか?
抽象的なTが安全でない場合は、TがPOD(普通の古いデータ、基本的にはC構造体)であることを知っているとします。
任意のC++タイプT
で作業することを意味しますか? T
がPOD(普通の古いデータ、基本的にはC構造体)タイプであることが分かっていなければ、タイプT
のオブジェクトをmemcpy
でコピーすることは安全ではありません。そうすれば、たとえば、memcpy
にしようとすると、std::vector
がデータバッファをコピーしないなど、不正なコピーにつながる可能性があるのコピーコンストラクタが実行されなくなります。
これはTのタイプによって危険です。TがPODタイプの場合は、すべて問題ありません。それ以外の場合は、単にTのコピーコンストラクタを呼び出すことをお勧めします(できない場合は、クローンパターンを使用してください)。
あなたcantそれを確実に行います。それがとても簡単で、可能であり、信頼できるものだったならば、プログラマーはoperator=()
をオーバーロードしてコピーコンストラクターを書くことはありません。
オブジェクトのコピーを作成する場合は、operator=()
をオーバーロードするか、コピーコンストラクタを書き込むか、両方を実行します。
どのようにmemcpyを使いたいですか? –