(<*>).(<*>)@pink_snow в общем приходится все типы полей структуры перечислять.
template <class T, class ... Args>
T constructor(Args... fields)
{
T x { fields... };
return x;
}
curry<T, string, string>(constructor<T, string, string>)
^ parse_string
^ parse_string
ну по крайней мере работает