スレ立てるまでもない質問はここで 166匹目 (123レス)
上下前次1-新
31: デフォルトの名無しさん [sage] 2024/12/27(金) 17:33:54.43 ID:nD3ic5a1(1) AAS
>>3030(1): デフォルトの名無しさん [age] 2024/12/27(金) 06:15:40.85 ID:bYQBZY3/(1) AAS
C++です。
ISuperインターフェースクラスを継承したCSubAクラスとCSubBクラスがあり、
それぞれのインスタンスのポインタのリストがある(必要)とします。
std::list<CSubA*> lpSubA;
std::list<CSubB*> lpSubB;
両リストの全要素に対し、ISuperにアップキャストして処理をしたく、
std::list<ISuper*> lpSuper;
lpSuper.insert( lpSuper.end(), lpSubA.begin(), lpSubA.end() );
lpSuper.insert( lpSuper.end(), lpSubB.begin(), lpSubB.end() );
for( auto& pSuper : lpSuper ) pSuperを使った処理;
のようにすればできるのですが、これを
for( auto& pSuper : lpSubAとlpSubBを連結 ) pSuperを使った処理;
のように事前のlpSuper構築なしで行う書き方はできないものでしょうか?
ソースコードの見た目だけの話をしてるなら、lpSuperを作ってるとこを関数かラムダにしてforのとこで呼び出せばいい
将来的にはそんな感じの機能が標準ライブラリのrangesでサポートされる
上下前次1-新書関写板覧索設栞歴
あと 92 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.017s