#include <iostream>
#include <string>
#include <vector>
struct AskBase
{
};
template <typename T>
struct Ask : public AskBase
{
Ask (const std::string&, int, int)
{
}
};
struct AskUI
{
std::vector <AskBase*> questions ;
AskUI (const std::vector <AskBase*> &questions) : questions (questions)
{
}
};
int main()
{
AskUI askUI {{
new Ask <std::string>{"Enter your name: ", 3, 25},
new Ask<std::string>{"Enter your city: ", 2, 25},
new Ask<std::string>{"Enter your state: ", 2, 2},
new Ask<int> {"Enter your age: ", 18, 120}
}} ;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgoKc3RydWN0IEFza0Jhc2UKewp9OwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0cnVjdCBBc2sgOiBwdWJsaWMgQXNrQmFzZQp7CiAgICBBc2sgKGNvbnN0IHN0ZDo6c3RyaW5nJiwgaW50LCBpbnQpCiAgICB7CiAgICB9Cn07CgpzdHJ1Y3QgQXNrVUkKewogICAgc3RkOjp2ZWN0b3IgPEFza0Jhc2UqPiBxdWVzdGlvbnMgOwogICAgCiAgICBBc2tVSSAoY29uc3Qgc3RkOjp2ZWN0b3IgPEFza0Jhc2UqPiAmcXVlc3Rpb25zKSA6IHF1ZXN0aW9ucyAocXVlc3Rpb25zKQogICAgewogICAgfQp9OwoKaW50IG1haW4oKQp7CiAgICBBc2tVSSBhc2tVSSB7ewogICAgICAgIG5ldyBBc2sgPHN0ZDo6c3RyaW5nPnsiRW50ZXIgeW91ciBuYW1lOiAiLCAgMywgIDI1fSwKICAgICAgICBuZXcgQXNrPHN0ZDo6c3RyaW5nPnsiRW50ZXIgeW91ciBjaXR5OiAiLCAgMiwgIDI1fSwKICAgICAgICBuZXcgQXNrPHN0ZDo6c3RyaW5nPnsiRW50ZXIgeW91ciBzdGF0ZTogIiwgMiwgICAyfSwKICAgICAgICBuZXcgQXNrPGludD4gICAgICAgIHsiRW50ZXIgeW91ciBhZ2U6ICIsICAxOCwgMTIwfQogICAgfX0gOwoKICAgcmV0dXJuIDA7Cn0KCg==