#ifndef FIELDH
#define FIELDH
#include <iostream>
#include <iomanip>
using namespace std;

template <class T>
inline const T& field(const void *& p, const char *s = 0)
{
	const T *const pt = reinterpret_cast<const T *>(p);

	cout << setw(10) << p << ": " << setw(7) << *pt;
	if (s != 0) {
		cout << " (" << s << ")";
	}
	cout << "\n";

	p = pt + 1;
	return *pt;
}
#endif