То, чего вы стремитесь достичь, не возможно так прямо, однако это не невозможно!
Одним из способов было бы расширение address
новыми членами посредством наследования.
struct address
{
char name[50];
char street[100];
};
struct pin_address : public address
{
int pinCode;
};
Другое было бы путем реализации некоторой структуры std::variant
- std::map
, которая позволит вам динамически добавлять / удалять членов .
#include <variant>
#include <map>
using Object = std::variant<int,double,std::string>;
using Members = std::map<std::string,Object>;
struct address
{
Members m_members;
address()
{
m_members.emplace("name", Object{});
m_members.emplace("street", Object{});
m_members.emplace("pinCode", Object{});
}
}