Change name of endianness enum to order. This is often used with namespace qualifier, and endian::order is shorter and reads better than endian::endianness.

Continue infrastructure and test updates.
This commit is contained in:
Beman committed 2013-03-19 09:28:22 -04:00
1 parent 35a3fcb709
commit 736d9cce09
7 files changed
+104 -103

No files matched your search

+4 -4
View File
@@ -44,11 +44,11 @@ namespace endian
template <class T>
inline T big(T x);
// Return: x if native endianness is big, otherwise reorder(x);
// Return: x if native endian order is big, otherwise reorder(x);
template <class T>
inline T little(T x);
// Return: x if native endianness is little, otherwise reorder(x);
// Return: x if native endian order is little, otherwise reorder(x);
//----------------------------------- implementation -----------------------------------//
// -- reorder implementation approach suggested by tymofey, with avoidance of
@@ -120,7 +120,7 @@ namespace endian
}
template <class T>
inline T big(const T& x)
inline T big(T x)
{
# ifdef BOOST_BIG_ENDIAN
return x;
@@ -130,7 +130,7 @@ namespace endian
}
template <class T>
inline T little(const T& x)
inline T little(T x)
{
# ifdef BOOST_LITTLE_ENDIAN
return x;
+72 -72
View File
@@ -163,10 +163,10 @@ namespace boost
// endian class template and specializations ---------------------------------------//
BOOST_SCOPED_ENUM_START(endianness) { big, little, native }; BOOST_SCOPED_ENUM_END
BOOST_SCOPED_ENUM_START(order) { big, little, native }; BOOST_SCOPED_ENUM_END
BOOST_SCOPED_ENUM_START(alignment) { unaligned, aligned }; BOOST_SCOPED_ENUM_END
template <BOOST_SCOPED_ENUM(endianness) E, typename T, std::size_t n_bits,
template <BOOST_SCOPED_ENUM(order) E, typename T, std::size_t n_bits,
BOOST_SCOPED_ENUM(alignment) A = alignment::unaligned>
class endian;
@@ -177,8 +177,8 @@ namespace boost
// unaligned big endian specialization
template <typename T, std::size_t n_bits>
class endian< endianness::big, T, n_bits, alignment::unaligned >
: cover_operators< endian< endianness::big, T, n_bits >, T >
class endian< order::big, T, n_bits, alignment::unaligned >
: cover_operators< endian< order::big, T, n_bits >, T >
{
BOOST_STATIC_ASSERT( (n_bits/8)*8 == n_bits );
public:
@@ -210,8 +210,8 @@ namespace boost
// unaligned little endian specialization
template <typename T, std::size_t n_bits>
class endian< endianness::little, T, n_bits, alignment::unaligned >
: cover_operators< endian< endianness::little, T, n_bits >, T >
class endian< order::little, T, n_bits, alignment::unaligned >
: cover_operators< endian< order::little, T, n_bits >, T >
{
BOOST_STATIC_ASSERT( (n_bits/8)*8 == n_bits );
public:
@@ -243,8 +243,8 @@ namespace boost
// unaligned native endian specialization
template <typename T, std::size_t n_bits>
class endian< endianness::native, T, n_bits, alignment::unaligned >
: cover_operators< endian< endianness::native, T, n_bits >, T >
class endian< order::native, T, n_bits, alignment::unaligned >
: cover_operators< endian< order::native, T, n_bits >, T >
{
BOOST_STATIC_ASSERT( (n_bits/8)*8 == n_bits );
public:
@@ -274,8 +274,8 @@ namespace boost
// aligned big endian specialization
template <typename T, std::size_t n_bits>
class endian< endianness::big, T, n_bits, alignment::aligned >
: cover_operators< endian< endianness::big, T, n_bits, alignment::aligned >, T >
class endian< order::big, T, n_bits, alignment::aligned >
: cover_operators< endian< order::big, T, n_bits, alignment::aligned >, T >
{
BOOST_STATIC_ASSERT( (n_bits/8)*8 == n_bits );
BOOST_STATIC_ASSERT( sizeof(T) == n_bits/8 );
@@ -303,8 +303,8 @@ namespace boost
// aligned little endian specialization
template <typename T, std::size_t n_bits>
class endian< endianness::little, T, n_bits, alignment::aligned >
: cover_operators< endian< endianness::little, T, n_bits, alignment::aligned >, T >
class endian< order::little, T, n_bits, alignment::aligned >
: cover_operators< endian< order::little, T, n_bits, alignment::aligned >, T >
{
BOOST_STATIC_ASSERT( (n_bits/8)*8 == n_bits );
BOOST_STATIC_ASSERT( sizeof(T) == n_bits/8 );
@@ -333,64 +333,64 @@ namespace boost
// naming convention typedefs ------------------------------------------------------//
// unaligned big endian signed integer types
typedef endian< endianness::big, int_least8_t, 8 > big8_t;
typedef endian< endianness::big, int_least16_t, 16 > big16_t;
typedef endian< endianness::big, int_least32_t, 24 > big24_t;
typedef endian< endianness::big, int_least32_t, 32 > big32_t;
typedef endian< endianness::big, int_least64_t, 40 > big40_t;
typedef endian< endianness::big, int_least64_t, 48 > big48_t;
typedef endian< endianness::big, int_least64_t, 56 > big56_t;
typedef endian< endianness::big, int_least64_t, 64 > big64_t;
typedef endian< order::big, int_least8_t, 8 > big8_t;
typedef endian< order::big, int_least16_t, 16 > big16_t;
typedef endian< order::big, int_least32_t, 24 > big24_t;
typedef endian< order::big, int_least32_t, 32 > big32_t;
typedef endian< order::big, int_least64_t, 40 > big40_t;
typedef endian< order::big, int_least64_t, 48 > big48_t;
typedef endian< order::big, int_least64_t, 56 > big56_t;
typedef endian< order::big, int_least64_t, 64 > big64_t;
// unaligned big endian unsigned integer types
typedef endian< endianness::big, uint_least8_t, 8 > ubig8_t;
typedef endian< endianness::big, uint_least16_t, 16 > ubig16_t;
typedef endian< endianness::big, uint_least32_t, 24 > ubig24_t;
typedef endian< endianness::big, uint_least32_t, 32 > ubig32_t;
typedef endian< endianness::big, uint_least64_t, 40 > ubig40_t;
typedef endian< endianness::big, uint_least64_t, 48 > ubig48_t;
typedef endian< endianness::big, uint_least64_t, 56 > ubig56_t;
typedef endian< endianness::big, uint_least64_t, 64 > ubig64_t;
typedef endian< order::big, uint_least8_t, 8 > ubig8_t;
typedef endian< order::big, uint_least16_t, 16 > ubig16_t;
typedef endian< order::big, uint_least32_t, 24 > ubig24_t;
typedef endian< order::big, uint_least32_t, 32 > ubig32_t;
typedef endian< order::big, uint_least64_t, 40 > ubig40_t;
typedef endian< order::big, uint_least64_t, 48 > ubig48_t;
typedef endian< order::big, uint_least64_t, 56 > ubig56_t;
typedef endian< order::big, uint_least64_t, 64 > ubig64_t;
// unaligned little endian signed integer types
typedef endian< endianness::little, int_least8_t, 8 > little8_t;
typedef endian< endianness::little, int_least16_t, 16 > little16_t;
typedef endian< endianness::little, int_least32_t, 24 > little24_t;
typedef endian< endianness::little, int_least32_t, 32 > little32_t;
typedef endian< endianness::little, int_least64_t, 40 > little40_t;
typedef endian< endianness::little, int_least64_t, 48 > little48_t;
typedef endian< endianness::little, int_least64_t, 56 > little56_t;
typedef endian< endianness::little, int_least64_t, 64 > little64_t;
typedef endian< order::little, int_least8_t, 8 > little8_t;
typedef endian< order::little, int_least16_t, 16 > little16_t;
typedef endian< order::little, int_least32_t, 24 > little24_t;
typedef endian< order::little, int_least32_t, 32 > little32_t;
typedef endian< order::little, int_least64_t, 40 > little40_t;
typedef endian< order::little, int_least64_t, 48 > little48_t;
typedef endian< order::little, int_least64_t, 56 > little56_t;
typedef endian< order::little, int_least64_t, 64 > little64_t;
// unaligned little endian unsigned integer types
typedef endian< endianness::little, uint_least8_t, 8 > ulittle8_t;
typedef endian< endianness::little, uint_least16_t, 16 > ulittle16_t;
typedef endian< endianness::little, uint_least32_t, 24 > ulittle24_t;
typedef endian< endianness::little, uint_least32_t, 32 > ulittle32_t;
typedef endian< endianness::little, uint_least64_t, 40 > ulittle40_t;
typedef endian< endianness::little, uint_least64_t, 48 > ulittle48_t;
typedef endian< endianness::little, uint_least64_t, 56 > ulittle56_t;
typedef endian< endianness::little, uint_least64_t, 64 > ulittle64_t;
typedef endian< order::little, uint_least8_t, 8 > ulittle8_t;
typedef endian< order::little, uint_least16_t, 16 > ulittle16_t;
typedef endian< order::little, uint_least32_t, 24 > ulittle24_t;
typedef endian< order::little, uint_least32_t, 32 > ulittle32_t;
typedef endian< order::little, uint_least64_t, 40 > ulittle40_t;
typedef endian< order::little, uint_least64_t, 48 > ulittle48_t;
typedef endian< order::little, uint_least64_t, 56 > ulittle56_t;
typedef endian< order::little, uint_least64_t, 64 > ulittle64_t;
// unaligned native endian signed integer types
typedef endian< endianness::native, int_least8_t, 8 > native8_t;
typedef endian< endianness::native, int_least16_t, 16 > native16_t;
typedef endian< endianness::native, int_least32_t, 24 > native24_t;
typedef endian< endianness::native, int_least32_t, 32 > native32_t;
typedef endian< endianness::native, int_least64_t, 40 > native40_t;
typedef endian< endianness::native, int_least64_t, 48 > native48_t;
typedef endian< endianness::native, int_least64_t, 56 > native56_t;
typedef endian< endianness::native, int_least64_t, 64 > native64_t;
typedef endian< order::native, int_least8_t, 8 > native8_t;
typedef endian< order::native, int_least16_t, 16 > native16_t;
typedef endian< order::native, int_least32_t, 24 > native24_t;
typedef endian< order::native, int_least32_t, 32 > native32_t;
typedef endian< order::native, int_least64_t, 40 > native40_t;
typedef endian< order::native, int_least64_t, 48 > native48_t;
typedef endian< order::native, int_least64_t, 56 > native56_t;
typedef endian< order::native, int_least64_t, 64 > native64_t;
// unaligned native endian unsigned integer types
typedef endian< endianness::native, uint_least8_t, 8 > unative8_t;
typedef endian< endianness::native, uint_least16_t, 16 > unative16_t;
typedef endian< endianness::native, uint_least32_t, 24 > unative24_t;
typedef endian< endianness::native, uint_least32_t, 32 > unative32_t;
typedef endian< endianness::native, uint_least64_t, 40 > unative40_t;
typedef endian< endianness::native, uint_least64_t, 48 > unative48_t;
typedef endian< endianness::native, uint_least64_t, 56 > unative56_t;
typedef endian< endianness::native, uint_least64_t, 64 > unative64_t;
typedef endian< order::native, uint_least8_t, 8 > unative8_t;
typedef endian< order::native, uint_least16_t, 16 > unative16_t;
typedef endian< order::native, uint_least32_t, 24 > unative24_t;
typedef endian< order::native, uint_least32_t, 32 > unative32_t;
typedef endian< order::native, uint_least64_t, 40 > unative40_t;
typedef endian< order::native, uint_least64_t, 48 > unative48_t;
typedef endian< order::native, uint_least64_t, 56 > unative56_t;
typedef endian< order::native, uint_least64_t, 64 > unative64_t;
#define BOOST_HAS_INT16_T
#define BOOST_HAS_INT32_T
@@ -406,24 +406,24 @@ namespace boost
// <cstdint> types are superior for this use case
# if defined(BOOST_HAS_INT16_T)
typedef endian< endianness::big, int16_t, 16, alignment::aligned > aligned_big16_t;
typedef endian< endianness::big, uint16_t, 16, alignment::aligned > aligned_ubig16_t;
typedef endian< endianness::little, int16_t, 16, alignment::aligned > aligned_little16_t;
typedef endian< endianness::little, uint16_t, 16, alignment::aligned > aligned_ulittle16_t;
typedef endian< order::big, int16_t, 16, alignment::aligned > aligned_big16_t;
typedef endian< order::big, uint16_t, 16, alignment::aligned > aligned_ubig16_t;
typedef endian< order::little, int16_t, 16, alignment::aligned > aligned_little16_t;
typedef endian< order::little, uint16_t, 16, alignment::aligned > aligned_ulittle16_t;
# endif
# if defined(BOOST_HAS_INT32_T)
typedef endian< endianness::big, int32_t, 32, alignment::aligned > aligned_big32_t;
typedef endian< endianness::big, uint32_t, 32, alignment::aligned > aligned_ubig32_t;
typedef endian< endianness::little, int32_t, 32, alignment::aligned > aligned_little32_t;
typedef endian< endianness::little, uint32_t, 32, alignment::aligned > aligned_ulittle32_t;
typedef endian< order::big, int32_t, 32, alignment::aligned > aligned_big32_t;
typedef endian< order::big, uint32_t, 32, alignment::aligned > aligned_ubig32_t;
typedef endian< order::little, int32_t, 32, alignment::aligned > aligned_little32_t;
typedef endian< order::little, uint32_t, 32, alignment::aligned > aligned_ulittle32_t;
# endif
# if defined(BOOST_HAS_INT64_T)
typedef endian< endianness::big, int64_t, 64, alignment::aligned > aligned_big64_t;
typedef endian< endianness::big, uint64_t, 64, alignment::aligned > aligned_ubig64_t;
typedef endian< endianness::little, int64_t, 64, alignment::aligned > aligned_little64_t;
typedef endian< endianness::little, uint64_t, 64, alignment::aligned > aligned_ulittle64_t;
typedef endian< order::big, int64_t, 64, alignment::aligned > aligned_big64_t;
typedef endian< order::big, uint64_t, 64, alignment::aligned > aligned_ubig64_t;
typedef endian< order::little, int64_t, 64, alignment::aligned > aligned_little64_t;
typedef endian< order::little, uint64_t, 64, alignment::aligned > aligned_ulittle64_t;
# endif
} // namespace endian