Я действительно не знаю, как правильно называть это, так что извините за то, что я написал. Я думаю, что лучше всего показать на примере.
void foo(std::pair<std::string, T>, std::pair<std::string, U>, std::pair<std::string, Z>, ...);
, где T, U и Z могут быть разных типов, но в списке постоянно меняется количество параметров. Я знаю, что вы можете использовать пакет параметров и просто предполагать, что они передают объекты по этой линии, но затем, когда вы вызываете функцию, вы не можете вызвать инициализаторы агрегатов пар.
template<typename ...args>
void foo(args... values);
//the following isn't allowed, cause it doesn't know the type. (this is what I want it to look like)
foo({"hi",5}, {"hello", true});
Возможно ли это вообще? что я пытаюсь сделать? Любая помощь будет оценена.