私は今のところ C++03 で立ち往生しており、任意の数のタイプ セーフな引数を受け入れるグローバル関数を作成したいと考えています (必要に応じて、9 などの合理的な制限まで)。
私は自分のコード ベースで完全なブースト ライブラリにアクセスboost::mpl::vector
できるので、ここで役立つことを願っています。また、これを書くのが不便になりたくありません。呼び出しサイトの構文は、次のように単純にする必要があります。
LogDebugMessage("Number of cats and dogs:", m_myPets->NumCats(), m_myPets->NumDogs());
タイプセーフな方法でこれを実装する最良の方法は何でしょうか?
編集
また、これにはテンプレートの特殊化を使用できることも認識していますが、追加のテンプレート パラメーターごとに 1 つずつ、同じ構造体を 9 回定義することはしたくありません。これは面倒すぎます。できればそれは避けたいです。