O ile rozumiem, nie ma potrzeby serializacji (boost::serialization
, faktycznie) obsługi dla elementu zastępczego .C++ - boost :: any serialization
Czy ktoś wie, czy istnieje sposób na serializację niestandardowej jednostki boost::any
?
Problem tutaj jest oczywisty: boost::any
używa symboli zastępczych opartych na szablonach do przechowywania obiektów i typeid
, aby sprawdzić, czy odpowiedni jest boost::any_cast
.
Tak, tam jest zwyczaj abstrakcyjne nadklasą placeholder
i niestandardowych opartych na szablonie klasy pochodne, które są tworzone w następujący sposób:
template <T> custom_placeholder : public placeholder {
virtual std::type_info type() const { return typeid(T); }
virtual ...
};
Oczywiście, ten przynosi pewne problemy, gdy nawet myślenia o szeregowania te rzeczy. Może ktoś zna jakąś sztuczkę, aby dokonać takiej serializacji (i oczywiście właściwej deserializacji)?
Dziękujemy
Wyspecjalizowany typ dla znanego zestawu typów byłby nazywany wariantem np. ['boost :: variant'] (http://www.boost.org/doc/libs/1_44_0/doc/html/variant.html) (co oczywiście daje tylko podstawę). –
@Georg: Tak, dzięki za podpowiedź. Zmieniłem odpowiedź, aby to odzwierciedlić. –