Можно ли создавать в рантайме объект в C++?
Немного неясен вопрос. Но так как вы написали, да, можно. В процессе компиляции компилятор определит нужный тип, который возвращает ваш класс и подставит его вместо "auto". Если вы обращаетесь к неверным полям, несвойственным этому типу, компилятор вам это скажет во время компиляции. 
Но все же приведенный вами пример - не интроспекция. Интроспекция в С++ достигается посредством RTTI. У вас в примере тип объекта известен во время компиляции.
можно попробовать как-нибудь так:typedef boost::variant<int, string, bool> field_t;
typedef std::map<string, field> settings_t;
struct A
{
   A(file)
   : settings_(file.parse())
   {}
private:
   settings_t settings_;
   int my_method()
   {
      int a = boost::get<int>(settings_["a"]);
      int b = boost::get<int>(settings_["b"]);
      return a + b;
   }
}