forked from boostorg/endian
Rename "reverse_endianness" to "endian_reverse". Shorter but still plenty explicit. See bikeshed.txt for alternatives considered.
This commit is contained in:
@@ -20,52 +20,54 @@ using std::cout;
|
||||
using std::endl;
|
||||
using boost::int32_t;
|
||||
|
||||
class UDT
|
||||
namespace user
|
||||
{
|
||||
public:
|
||||
UDT() : id_(0), value_(0.0) {desc_[0] = '\0';}
|
||||
UDT(int32_t id, float value, const char* desc) : id_(id), value_(value)
|
||||
class UDT
|
||||
{
|
||||
std::strncpy(desc_, desc, sizeof(desc_)-1);
|
||||
desc_[sizeof(desc_)-1] = '\0';
|
||||
}
|
||||
int32_t id() const {return id_;}
|
||||
float value() const {return value_;}
|
||||
const char* desc() const {return desc_;}
|
||||
void id(int32_t x) {id_ = x;}
|
||||
void value(float v) {value_ = v;}
|
||||
void desc(const char* s)
|
||||
public:
|
||||
UDT() : id_(0), value_(0.0) {desc_[0] = '\0';}
|
||||
UDT(int32_t id, float value, const char* desc) : id_(id), value_(value)
|
||||
{
|
||||
std::strncpy(desc_, desc, sizeof(desc_)-1);
|
||||
desc_[sizeof(desc_)-1] = '\0';
|
||||
}
|
||||
int32_t id() const {return id_;}
|
||||
float value() const {return value_;}
|
||||
const char* desc() const {return desc_;}
|
||||
void id(int32_t x) {id_ = x;}
|
||||
void value(float v) {value_ = v;}
|
||||
void desc(const char* s)
|
||||
{
|
||||
std::strncpy(desc_, s, sizeof(desc_)-1);
|
||||
desc_[sizeof(desc_-1)] = '\0';
|
||||
}
|
||||
|
||||
friend void endian_reverse_in_place(UDT&);
|
||||
|
||||
private:
|
||||
int32_t id_;
|
||||
float value_;
|
||||
char desc_[56]; // '/0'
|
||||
};
|
||||
|
||||
void endian_reverse_in_place(UDT& x)
|
||||
{
|
||||
std::strncpy(desc_, s, sizeof(desc_)-1);
|
||||
desc_[sizeof(desc_-1)] = '\0';
|
||||
boost::endian::endian_reverse_in_place(x.id_);
|
||||
boost::endian::endian_reverse_in_place(x.value_);
|
||||
}
|
||||
|
||||
friend UDT reverse_endianness(const UDT&);
|
||||
friend void reverse_endianness_in_place(UDT&);
|
||||
|
||||
private:
|
||||
int32_t id_;
|
||||
float value_;
|
||||
char desc_[56]; // '/0'
|
||||
};
|
||||
|
||||
void reverse_endianness_in_place(UDT& x)
|
||||
{
|
||||
reverse_endianness_in_place(x.id_);
|
||||
reverse_endianness_in_place(x.value_);
|
||||
}
|
||||
|
||||
int main(int, char* [])
|
||||
{
|
||||
UDT x(1, 1.2345f, "Bingo!");
|
||||
user::UDT x(1, 1.2345f, "Bingo!");
|
||||
|
||||
//cout << std::hex;
|
||||
cout << "(1) " << x.id() << ' ' << x.value() << ' ' << x.desc() << endl;
|
||||
|
||||
reverse_endianness_in_place(x);
|
||||
user::endian_reverse_in_place(x);
|
||||
cout << "(2) " << x.id() << ' ' << x.value() << ' ' << x.desc() << endl;
|
||||
|
||||
reverse_endianness_in_place(x);
|
||||
endian_reverse_in_place(x);
|
||||
cout << "(3) " << x.id() << ' ' << x.value() << ' ' << x.desc() << endl;
|
||||
|
||||
conditional_reverse_in_place<order::little, order::big>(x);
|
||||
|
||||
Reference in New Issue
Block a user