netgen/libsrc/general/archive_base.hpp
Joachim Schoeberl e920593821 add size-t
2015-01-08 12:47:27 +00:00

37 lines
794 B
C++

#ifndef NGS_ARCHIVE_BASE
#define NGS_ARCHIVE_BASE
namespace ngstd
{
class Archive
{
public:
virtual bool Output () = 0;
virtual bool Input () { return !Output(); }
virtual Archive & operator & (double & d) = 0;
virtual Archive & operator & (int & i) = 0;
virtual Archive & operator & (long & i) = 0;
virtual Archive & operator & (size_t & i) = 0;
virtual Archive & operator & (short & i) = 0;
virtual Archive & operator & (unsigned char & i) = 0;
virtual Archive & operator & (bool & b) = 0;
virtual Archive & operator & (string & str) = 0;
virtual Archive & operator & (char *& str) = 0;
template <typename T>
Archive & operator << (const T & t)
{
T ht(t);
(*this) & ht;
return *this;
}
};
}
#endif