実現したい機能
c++において最大でN個の引数を取る関数をつくり、その引数の一部または全部に値を渡し、残りをデフォルト値とすることは可能でしょうか。但し、受ける引数は全て型が異なります。イメージとしては以下のような機能を実装したいです。
c++
1func(T1 n1=v1, T2 n2=v2, T3 n3=v3,...,TN nN=vN) {} 2 3main 4{ 5T2 val2 = hoge; 6func(val2); 7// n1, n2, n3,..., nN = v1, hoge, v3,..., vN 8 9T3 val3 = fuga; 10func(val2, val3) 11// n1, n2, n3,..., nN = v1, hoge, fuga,..., vN 12}
追記:
型T1からTNは継承関係にはありません。(継承関係にある場合どう変わるかも興味があります)
具体的にやりたいことですが、センサーモジュールのコンフィグを書き換える関数を作っていまして、基本的にはデフォルト値を書き込めば良いのですが、場合によっては一部のコンフィグを変更する必要があります。但し、コンフィグの書き換え順序に制約があり、個々のコンフィグを書き換える関数を作るよりは全体をまとめて書き換える関数の方が使い勝手が良いのです。
したがって型T1からTNはセンサーの機能毎のコンフィグをまとめた構造体になります。
受ける引数は全て型が異なりますとのことですが、n番目の引数に取りうる型は継承関係にあったりはしないのでしょうか?もうちょっとどういうことをやりたいか全体的な話があると良い解決策が提示できると思います。