[過去ログ] C++相談室 part165 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
121(1): デフォルトの名無しさん (ワッチョイ 9901-r6/T) [sage] 2024/01/04(木) 00:44:07.87 ID:/FDyuY0i0(1/3) AAS
decltype(src.*p_)ってbase_なのでダメだろう
124(1): デフォルトの名無しさん (ワッチョイ 9901-r6/T) [sage] 2024/01/04(木) 09:11:56.12 ID:/FDyuY0i0(2/3) AAS
A::base_に以下を足してA::derived_で実装し
Aのコピーコンストラクタから呼べば?
virtual base_ *clone (void *p) = 0;
129: デフォルトの名無しさん (ワッチョイ 9901-r6/T) [sage] 2024/01/04(木) 22:21:15.81 ID:/FDyuY0i0(3/3) AAS
>>127127(2): デフォルトの名無しさん (ワッチョイ e95f-pFp4) [sage] 2024/01/04(木) 21:53:05.60 ID:ACseOt7T0(2/2) AAS
>>124
こんな感じです?
struct base_ {
virtual base_* clone (void *p) = 0;
virtual ~base_() {};
};
template <typename F>
struct derived_ : base_ {
F f_;
derived_(F f) : f_{ std::move(f) } {}
base_* clone (void *p_buf){
return new(reinterpret_cast<derived_<F>*>(p_buf))(f_);
}
};
A(A& src) {
p_ = src.clone((void*)buf);
};
書き込む前にコンパイルしなよ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.041s