Hi,
I have developed a simple cast function which I found very useful. Here it is:
template< typename T >
inline T offset_cast( void* p, unsigned int offset=0 )
{
return reinterpret_cast< T >( static_cast<unsigned char*>( p )+offset
);
}
template< typename T >
inline T offset_cast( const void* p, unsigned int offset=0 )
{
return reinterpret_cast< T >( static_cast<const unsigned char*>( p
)+offset );
}
Its purposes is to simplify a mapping of C-like structure onto binary data. Here is
the example: Assume thath you have a network packet in raw format, and you want
to read IP-header information. You could do following:
ip_header* ip=offset_cast<ip_header>( packet, ip_header_offset );
instead of ugly pointer arithmetic.
Is there any interest for something like this in Boost?
Pavol
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost