Информация об изменениях

Сообщение Re: константа и не константа одновременно(почти) от 08.05.2015 8:49

Изменено 08.05.2015 8:49 niXman

и так, с чего все происходит:
есть такая функция:
template<typename Archive, typename... Args>
bool apply(Archive &ar, Args&&... args) {
   // тут 'Args...' - пак пар
   // тут в/из 'ar' записывается/считывается 'args...'
}

используется это так:
struct user_type {
int i;
long l;
float f;

// этот макрос генерит неоходиммый код для сериализации/десериализации
YAS_SERIALIZE_ONE_MF(i, l, f);

// развернется он в нечто типа:
template<typename Archive>
void serialize(Archive &ar) {
apply(
ar
,pair<decltype(i)>{"i", i}
,pair<decltype(l)>{"l", l}
,pair<decltype(f)>{"f", f}
);
}
};
и так, с чего все происходит:
есть такая функция:
template<typename Archive, typename... Args>
bool apply(Archive &ar, Args&&... args) {
   // тут 'Args...' - пак пар
   // тут в/из 'ar' записывается/считывается 'args...'
}

используется это так:
struct user_type {
   int i;
   long l;
   float f;

   // этот макрос генерит неоходиммый код для сериализации/десериализации
   YAS_SERIALIZE_ONE_MF(i, l, f);

   // развернется он в нечто типа:
   template<typename Archive>
   void serialize(Archive &ar) {
      apply(
          ar
         ,pair<decltype(i)>{"i", i}
         ,pair<decltype(l)>{"l", l}
         ,pair<decltype(f)>{"f", f}
      );
   }
};