знаете, что надо было сделать?
просто создать мапу std::map <std::string, std::pair<std::string, std::string>>
где first.first - название секции
second.first - название аргумента
second.second - значение аргумента (храним как стринг изначально)
и реализовать методы приведения к тому типу, который задается из консоли, то есть, пользователь хочет получить значение какого-то аргумента в некой секции в целых числах, наш метод либо кидает исключение, если не может привести значение в целое, либо соотственно выдает ему его значение
я ж писал хранить стринги)
только почему pair?
если основная мапа — название секций, будет храниться только одна пара ключа-значений на одну секцию
[One]
hello = world
[Two]
world = hello
[Three]
...