well, that's what I had before, and I tried using const now:
Code:
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//bool operator < (KrakenDimension a, KrakenDimension b){
// if(a.type < b.type)
// return true;
// else if (a.type > b.type)
// return false;
// else
// return a.number < b.number;
//}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool KrakenDimension::operator < (const KrakenDimension & b){
if(type < b.type)
return true;
else if (type > b.type)
return false;
else
return number < b.number;
}
and here's the whole class declaration:
Code:
////////////////////////////////////////////////////////////////////////////////////////
class KrakenDimension{
public:
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KrakenDimensionType type;
int number;
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KrakenDimension()
: type(kdt_null),
number(0)
{}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KrakenDimension(KrakenDimensionType _type, int _number)
: type(_type),
number(_number)
{}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool operator == (KrakenDimension & b);
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool operator < (const KrakenDimension & b);
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool operator <= (KrakenDimension & b);
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool operator > (KrakenDimension & b);
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool operator >= (KrakenDimension & b);
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool operator != (KrakenDimension & b);
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
};
now, again, using map I get this error message:
Code:
c:/dev-c++/include/c++/3.3.1/bits/stl_function.h: In member function `bool
std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp =
KrakenDimension]':
c:/dev-c++/include/c++/3.3.1/bits/stl_tree.h:1323: instantiated from `std::_Rb
_tree_iterator<_Val, _Val&, _Val*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compa
re, _Alloc>::lower_bound(const _Key&) [with _Key = KrakenDimension, _Val = std::
pair<const KrakenDimension, int>, _KeyOfValue = std::_Select1st<std::pair<const
KrakenDimension, int> >, _Compare = std::less<KrakenDimension>, _Alloc = std::al
locator<std::pair<const KrakenDimension, int> >]'
c:/dev-c++/include/c++/3.3.1/bits/stl_map.h:508: instantiated from `typename s
td::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _
Key, _Tp> >, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::
lower_bound(const _Key&) [with _Key = KrakenDimension, _Tp = int, _Compare = std
::less<KrakenDimension>, _Alloc = std::allocator<std::pair<const KrakenDimension
, int> >]'
c:/dev-c++/include/c++/3.3.1/bits/stl_map.h:316: instantiated from `_Tp& std::
map<_Key, _Tp, _Compare, _Alloc>::operator[](const _Key&) [with _Key = KrakenDim
ension, _Tp = int, _Compare = std::less<KrakenDimension>, _Alloc = std::allocato
r<std::pair<const KrakenDimension, int> >]'
educt-dimension.cc:93: instantiated from here
c:/dev-c++/include/c++/3.3.1/bits/stl_function.h:197: error: passing `const
KrakenDimension' as `this' argument of `bool
KrakenDimension::operator<(const KrakenDimension&)' discards qualifiers
weird.. never came across something like this before, but then again I'm a c++ newbie