スレ立てるまでもない質問はここで 166匹目 (123レス)
1-

31: デフォルトの名無しさん [sage] 2024/12/27(金) 17:33:54.43 ID:nD3ic5a1(1) AAS
>>30
30(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