タイトルの通りですが,
std::variant<A,B>
型のオブジェクトから,(取り得る型の種類がより多い) std::variant<A,B,C>
型のオブジェクトを作りたい時,どう書けば良いのでしょうか?
以下の例のようにすればできますが,なんかこう,もっと 簡単に(?)/サクッと(?) 書ける方法があったりしますでしょうか?
例:
C++
1//例えば,なんかこんなのがあって… 2struct A{}; 3struct B{}; 4std::variant<A,B> A_or_B(); 5 6//こんなのを書くときに… 7struct C{}; 8std::variant<A,B,C> A_or_B_or_C() 9{ 10 if( /*何か*/ ) 11 {//A_or_B() の結果をそのまま結果とするフローがあるとき,どう書けばよいか? 12 //とりあえずコレでできているけど,もっと簡単な(?) 方法ってありますか? 13 auto A_or_B_result = A_or_B(); 14 return std::visit( []( auto &x )->std::variant<A,B,C>{ return x; }, A_or_B_result ); 15 } 16}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/11/11 01:52 編集
2024/11/11 02:37