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