你知道 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 但它只按类型过滤,否则我错过了一个页面)