[過去ログ] C++相談室 part165 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
126: デフォルトの名無しさん (ワッチョイ e95f-pFp4) [sage] 2024/01/04(木) 17:16:40.43 ID:ACseOt7T0(1/2) AAS
derived_かそのメンバf_の型を知るにはRTTIしかないのですかね?

>>121
121(1): デフォルトの名無しさん (ワッチョイ 9901-r6/T) [sage] 2024/01/04(木) 00:44:07.87 ID:/FDyuY0i0(1/3) AAS
decltype(src.*p_)ってbase_なのでダメだろう
decltypeだと派生先の型はわからないのか

>>122
122(1): デフォルトの名無しさん (ワッチョイ e1f0-JZT3) [sage] 2024/01/04(木) 00:58:18.81 ID:ECF9R1Fj0(1/2) AAS
ていうか、decltypeで型指定してるだけだからコピーもなにもされてないぞソレ
実体のコピーの処理が抜けてました…
127
(2): デフォルトの名無しさん (ワッチョイ e95f-pFp4) [sage] 2024/01/04(木) 21:53:05.60 ID:ACseOt7T0(2/2) AAS
>>124
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;
こんな感じです?

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.037s