//
// This software may only be used by you under license from the
// University of Notre Dame.  A copy of the University of Notre Dame's
// Source Code Agreement is available at the inilib Internet website
// having the URL: <http://inilib.sourceforge.net/license/> If you
// received this software without first entering into a license with the
// University of Notre Dame, you have an infringing copy of this software
// and cannot use it without violating the University of Notre Dame's
// intellectual property rights.
//
// AUTOMATICALLY GENERATED BY op_overload_gen.pl
// Edit this file at your own risk.  People have been killed for less.
//
    
#ifndef ATTR_OTHER_COMP_H_
#define ATTR_OTHER_COMP_H_

#include <string>

#include "Debug.h"
#include "attribute.h"
#include "bool_attribute.h"
#include "double_attribute.h"
#include "int_attribute.h"
#include "string_attribute.h"

namespace INI {
inline bool
operator<(const INI::attribute& a, bool b)
{
  return ((bool) a < b);
}

inline bool
operator<(bool& a, const INI::attribute& b)
{
  return (a < (bool) b);
}


inline bool
operator==(const INI::attribute& a, bool b)
{
  return ((bool) a == b);
}

inline bool
operator==(bool& a, const INI::attribute& b)
{
  return (a == (bool) b);
}


inline bool
operator!=(const INI::attribute& a, bool b)
{
  return ((bool) a != b);
}

inline bool
operator!=(bool& a, const INI::attribute& b)
{
  return (a != (bool) b);
}


inline bool
operator<(const INI::attribute& a, double b)
{
  return ((double) a < b);
}

inline bool
operator<(double& a, const INI::attribute& b)
{
  return (a < (double) b);
}


inline bool
operator==(const INI::attribute& a, double b)
{
  return ((double) a == b);
}

inline bool
operator==(double& a, const INI::attribute& b)
{
  return (a == (double) b);
}


inline bool
operator!=(const INI::attribute& a, double b)
{
  return ((double) a != b);
}

inline bool
operator!=(double& a, const INI::attribute& b)
{
  return (a != (double) b);
}


inline bool
operator<(const INI::attribute& a, int b)
{
  return ((int) a < b);
}

inline bool
operator<(int& a, const INI::attribute& b)
{
  return (a < (int) b);
}


inline bool
operator==(const INI::attribute& a, int b)
{
  return ((int) a == b);
}

inline bool
operator==(int& a, const INI::attribute& b)
{
  return (a == (int) b);
}


inline bool
operator!=(const INI::attribute& a, int b)
{
  return ((int) a != b);
}

inline bool
operator!=(int& a, const INI::attribute& b)
{
  return (a != (int) b);
}


inline bool
operator<(const INI::attribute& a, std::string b)
{
  return ((std::string) a < b);
}

inline bool
operator<(std::string& a, const INI::attribute& b)
{
  return (a < (std::string) b);
}


inline bool
operator==(const INI::attribute& a, std::string b)
{
  return ((std::string) a == b);
}

inline bool
operator==(std::string& a, const INI::attribute& b)
{
  return (a == (std::string) b);
}


inline bool
operator!=(const INI::attribute& a, std::string b)
{
  return ((std::string) a != b);
}

inline bool
operator!=(std::string& a, const INI::attribute& b)
{
  return (a != (std::string) b);
}


inline bool
operator<=(const INI::attribute& a, bool b)
{
  return ((bool) a <= b);
}

inline bool
operator<=(bool& a, const INI::attribute& b)
{
  return (a <= (bool) b);
}


inline bool
operator>(const INI::attribute& a, bool b)
{
  return ((bool) a > b);
}

inline bool
operator>(bool& a, const INI::attribute& b)
{
  return (a > (bool) b);
}


inline bool
operator>=(const INI::attribute& a, bool b)
{
  return ((bool) a >= b);
}

inline bool
operator>=(bool& a, const INI::attribute& b)
{
  return (a >= (bool) b);
}


inline bool
operator<=(const INI::attribute& a, double b)
{
  return ((double) a <= b);
}

inline bool
operator<=(double& a, const INI::attribute& b)
{
  return (a <= (double) b);
}


inline bool
operator>(const INI::attribute& a, double b)
{
  return ((double) a > b);
}

inline bool
operator>(double& a, const INI::attribute& b)
{
  return (a > (double) b);
}


inline bool
operator>=(const INI::attribute& a, double b)
{
  return ((double) a >= b);
}

inline bool
operator>=(double& a, const INI::attribute& b)
{
  return (a >= (double) b);
}


inline bool
operator<=(const INI::attribute& a, int b)
{
  return ((int) a <= b);
}

inline bool
operator<=(int& a, const INI::attribute& b)
{
  return (a <= (int) b);
}


inline bool
operator>(const INI::attribute& a, int b)
{
  return ((int) a > b);
}

inline bool
operator>(int& a, const INI::attribute& b)
{
  return (a > (int) b);
}


inline bool
operator>=(const INI::attribute& a, int b)
{
  return ((int) a >= b);
}

inline bool
operator>=(int& a, const INI::attribute& b)
{
  return (a >= (int) b);
}


}
#endif // ATTR_OTHER_COMP_H_
