LINUX.ORG.RU

История изменений

Исправление cvprog, (текущая версия) :

мне нужно всего лишь распарсить принятое сообщение, id которого известно. Я хочу написать один парсер для всех сообщений (он делает одинаковые проверки и затем собирает протобуфный класс из байтиков в строке). Сообщений очень много ... за 100.

С шаблонноей функцией все Ок. Интересно, а без шаблонов это реально??

string mess = ...;
moo::Message1 = Parse(mess, 1);

вот чуть-чуть чего-та не хватает

ЧТОТО Parse(std::string m, int id) {
   // ... действия всякие
   if (id == 1) {
     moo::Message1 res;
     res.ParseFromString(m);
     res.PrintDebugString();
     return res;
   }
   if (id == 2) {
     moo::Message2 res;
     res.ParseFromString(m);
     res.PrintDebugString();
     return res;
   }
   // ...:w
}

Исходная версия cvprog, :

мне нужно всего лишь распарсить принятое сообщение, id которого известно. Я хочу написать один парсер для всех сообщений (он делает одинаковые проверки и затем собирает протобуфный класс из байтиков в строке)

С шаблонноей функцией все Ок. Интересно, а без шаблонов это реально??

string mess = ...;
moo::Message1 = Parse(mess, 1);

вот чуть-чуть чего-та не хватает

ЧТОТО Parse(std::string m, int id) {
   // ... действия всякие
   if (id == 1) {
     moo::Message1 res;
     res.ParseFromString(m);
     res.PrintDebugString();
     return res;
   }
   if (id == 2) {
     moo::Message2 res;
     res.ParseFromString(m);
     res.PrintDebugString();
     return res;
   }
   // ...:w
}