|
Boost : |
Subject: [boost] hton/ntoh template functions
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2008-09-25 15:03:53
Hi,
currently most of the applications that must take care of endianess use
ntohl/htonl ntohs/htons functions.
When the size of the integer change we need to change between the -s and -l
functions (or maybe remove the call for chars).
I'm wondering if two template functions would improve the maintenability of
the code.
template <typename T>
T host_to_network(T v);
template <typename T>
T network_to_host(T v);
template <>
long host_to_network<long>(long v) {return htonl(v);}
template <>
long network_to_host<long>(long v) {return ntohl(v);}
template <>
short host_to_network<long>(short v) {return htons(v);}
template <>
short network_to_host<long>(short v) {return ntohs(v);}
we will need to add specialization for all the other integer types, and we
can also include char and unsigned char
template <>
char host_to_network<char>(char v) {return v;}
template <>
char network_to_host<char>(char v) {return v;}
Do you think that these template functions should be included in boost?
Best regards,
Vicente
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk