void DataIO_save_array_raw(DataIO& dio, const T* a, size_t n, ByteSwap_true)
{
//	printf("%s\n", BOOST_CURRENT_FUNCTION);
	for (size_t i = n; i; --i, ++a)
	{
		T e(*a);
		byte_swap_in(e, ByteSwap_true());
		dio.ensureWrite(&e, sizeof(T));
	}
}
void
DataIO_save_vector_raw(DataIO& dio, T*, const Vector& x, ByteSwap_true)
{
	typename Vector::const_iterator i = x.begin(), End = x.end();
	for ( ; i != End; ++i)
	{
		T e(*i);
		byte_swap_in(e, ByteSwap_true());
		dio.ensureWrite(&e, sizeof(T));
	}
}
void DataIO_load_elem_raw(DataIO& dio, T& x, ByteSwap_true)
{
    dio.ensureRead(&x, sizeof(T));
    byte_swap_in(x, ByteSwap_true());
}
void DataIO_save_elem_raw(DataIO& dio, const T& x, ByteSwap_true)
{
	T e(x);
	byte_swap_in(e, ByteSwap_true());
	dio.ensureWrite(&e, sizeof(T));
}