Make some operators in IPAddress const

These functions do not modify the IPAddress object, but were not marked
as const. This meant that you could not do:

void set_ip(const IPAddress& ip) {
	uint32_t copy = ip;
}

Since calling operator uint32_t() on ip would discard the constness of
the reference.
This commit is contained in:
Matthijs Kooijman 2014-01-09 19:39:07 +01:00
parent fbedfc4fbe
commit 46b0ada9a9
2 changed files with 4 additions and 4 deletions

View File

@ -37,7 +37,7 @@ IPAddress& IPAddress::operator=(uint32_t address)
return *this;
}
bool IPAddress::operator==(const uint8_t* addr)
bool IPAddress::operator==(const uint8_t* addr) const
{
return memcmp(addr, _address, sizeof(_address)) == 0;
}

View File

@ -49,9 +49,9 @@ public:
// Overloaded cast operator to allow IPAddress objects to be used where a pointer
// to a four-byte uint8_t array is expected
operator uint32_t() { return *((uint32_t*)_address); };
bool operator==(const IPAddress& addr) { return (*((uint32_t*)_address)) == (*((uint32_t*)addr._address)); };
bool operator==(const uint8_t* addr);
operator uint32_t() const { return *((uint32_t*)_address); };
bool operator==(const IPAddress& addr) const { return (*((uint32_t*)_address)) == (*((uint32_t*)addr._address)); };
bool operator==(const uint8_t* addr) const;
// Overloaded index operator to allow getting and setting individual octets of the address
uint8_t operator[](int index) const { return _address[index]; };