Сообщение Re: константа и не константа одновременно(почти) от 08.05.2015 8:49
Изменено 08.05.2015 8:49 niXman
и так, с чего все происходит:
есть такая функция:
используется это так:
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}
);
}
};
и так, с чего все происходит:
есть такая функция:
используется это так:
есть такая функция:
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}
);
}
};