Workaround for uclibc missing map::operator==()

This commit is contained in:
Adam Ierymenko 2015-07-13 11:39:55 -07:00
parent 547b1c6157
commit 88949a750f

View File

@ -33,7 +33,7 @@
#include <string>
#include <map>
#include <stdexcept>
#include "Constants.hpp"
#include "Utils.hpp"
@ -305,6 +305,21 @@ public:
*/
bool verify(const Identity &id) const;
inline bool operator==(const Dictionary &d) const
{
// std::map::operator== is broken on uclibc++
if (size() != d.size())
return false;
const_iterator a(begin());
const_iterator b(d.begin());
while (a != end()) {
if (*(a++) != *(b++))
return false;
}
return true;
}
inline bool operator!=(const Dictionary &d) const { return (!(*this == d)); }
private:
void _mkSigBuf(std::string &buf) const;
static void _appendEsc(const char *data,unsigned int len,std::string &to);