次のようなシグネチャを持つ関数を持つboost、pocoなどのライブラリを知っていますか?
template <typename T> auto vectorize(const std::vector<std::string> & mask, T & t) -> T::iterator
次のように使用できます:
struct A {double x; double y; double z;};
auto a = A();
auto it = vectorize({"x","z"}, a);
//and here doing perturbations and increments on a; ideally it is for passing it to another function
私はそのようなことを行う既存のコードを再設計しています (構造体内でシリアル化する方法を使用) が、私たちのバージョンが非常に面倒であることを認めなければなりません :/
そのための抽象化とタプルの操作のアイデアはありますか? 現在、タプルのフィールドをマッピングするために列挙型を使用しようとしています。
この種の再帰的なコンテナの反復の問題に対して、誰かが何かインテリジェントなものを書いたことは間違いありません。(私はboost::fusionを見てきましたが、タイプのみでフィルタリングするか、ページを見逃しました)