diff --git a/samples/blackmisc/sampleschangeobject.cpp b/samples/blackmisc/sampleschangeobject.cpp index f3fca3103..cb00b5ec7 100644 --- a/samples/blackmisc/sampleschangeobject.cpp +++ b/samples/blackmisc/sampleschangeobject.cpp @@ -59,7 +59,7 @@ namespace BlackMiscTest CIndexVariantMap newController; newController.addValue(CAtcStation::IndexController, QVariant::fromValue(CUser("112233", "Jane Doe"))); atcList.applyIf( - BlackMisc::Predicates::MemberEqual(&CAtcStation::getCallsign, CCallsign("eddm_twr")), + BlackMisc::Predicates::MemberEqual(&CAtcStation::getCallsign, CCallsign("eddm_twr")), newController); qDebug() << "-- after update via predicates"; qDebug() << atcList.toQString(); diff --git a/src/blackcore/airspace_monitor.cpp b/src/blackcore/airspace_monitor.cpp index 130321a67..4d7603c99 100644 --- a/src/blackcore/airspace_monitor.cpp +++ b/src/blackcore/airspace_monitor.cpp @@ -353,7 +353,7 @@ namespace BlackCore values.addValue(CAtcStation::IndexFrequency, frequency); values.addValue(CAtcStation::IndexPosition, position); values.addValue(CAtcStation::IndexRange, range); - this->m_atcStationsOnline.applyIf(BlackMisc::Predicates::MemberEqual(&CAtcStation::getCallsign, callsign), values); + this->m_atcStationsOnline.applyIf(BlackMisc::Predicates::MemberEqual(&CAtcStation::getCallsign, callsign), values); emit this->changedAtcStationsOnline(); } } @@ -434,7 +434,7 @@ namespace BlackCore if (!icaoDataDataFile.hasAircraftDesignator()) return; // give up! vm = CIndexVariantMap(CAircraft::IndexIcao, icaoData.toQVariant()); } - this->m_aircraftsInRange.applyIf(BlackMisc::Predicates::MemberEqual(&CAircraft::getCallsign, callsign), vm); + this->m_aircraftsInRange.applyIf(BlackMisc::Predicates::MemberEqual(&CAircraft::getCallsign, callsign), vm); emit this->changedAircraftsInRange(); } @@ -480,7 +480,7 @@ namespace BlackCore vm.addValue(CAircraft::IndexTransponder, transponder); vm.addValue(CAircraft::IndexSituation, situation); vm.addValue(CAircraft::IndexDistance, distance); - this->m_aircraftsInRange.applyIf(BlackMisc::Predicates::MemberEqual(&CAircraft::getCallsign, callsign), vm); + this->m_aircraftsInRange.applyIf(BlackMisc::Predicates::MemberEqual(&CAircraft::getCallsign, callsign), vm); } emit this->changedAircraftsInRange(); @@ -497,7 +497,7 @@ namespace BlackCore { // update CIndexVariantMap vm(CAircraft::IndexFrequencyCom1, frequency.toQVariant()); - this->m_aircraftsInRange.applyIf(BlackMisc::Predicates::MemberEqual(&CAircraft::getCallsign, callsign), vm); + this->m_aircraftsInRange.applyIf(BlackMisc::Predicates::MemberEqual(&CAircraft::getCallsign, callsign), vm); emit this->changedAircraftsInRange(); } diff --git a/src/blackmisc/containerbase.h b/src/blackmisc/containerbase.h index 5900781f6..dafd0cad1 100644 --- a/src/blackmisc/containerbase.h +++ b/src/blackmisc/containerbase.h @@ -80,7 +80,7 @@ namespace BlackMisc template C findBy(K0 k0, V0 v0, KeysValues... keysValues) const { - return findBy(BlackMisc::Predicates::MemberEqual(k0, v0, keysValues...)); + return findBy(BlackMisc::Predicates::MemberEqual(k0, v0, keysValues...)); } /*! @@ -117,7 +117,7 @@ namespace BlackMisc template bool contains(K0 k0, V0 v0, KeysValues... keysValues) const { - return contains(BlackMisc::Predicates::MemberEqual(k0, v0, keysValues...)); + return contains(BlackMisc::Predicates::MemberEqual(k0, v0, keysValues...)); } /*! @@ -143,7 +143,7 @@ namespace BlackMisc template void removeIf(K0 k0, V0 v0, KeysValues... keysValues) { - removeIf(BlackMisc::Predicates::MemberEqual(k0, v0, keysValues...)); + removeIf(BlackMisc::Predicates::MemberEqual(k0, v0, keysValues...)); } public: diff --git a/src/blackmisc/dictionary.h b/src/blackmisc/dictionary.h index 15ec1ce29..5e0ea8314 100644 --- a/src/blackmisc/dictionary.h +++ b/src/blackmisc/dictionary.h @@ -151,7 +151,7 @@ namespace BlackMisc template CDictionary findKeyBy(Pairs... pairs) const { - return findKeyBy(BlackMisc::Predicates::MemberEqual(pairs...)); + return findKeyBy(BlackMisc::Predicates::MemberEqual(pairs...)); } /*! @@ -176,7 +176,7 @@ namespace BlackMisc template CDictionary findValueBy(Pairs... pairs) const { - return findValueBy(BlackMisc::Predicates::MemberEqual(pairs...)); + return findValueBy(BlackMisc::Predicates::MemberEqual(pairs...)); } /*! @@ -193,7 +193,7 @@ namespace BlackMisc template bool containsByKey(MembFunc membFunc, ReturnValue returnValue) const { - return containsByKey(BlackMisc::Predicates::MemberEqual(membFunc, returnValue)); + return containsByKey(BlackMisc::Predicates::MemberEqual(membFunc, returnValue)); } //! Return true if there is an element for which a given predicate returns true. @@ -207,7 +207,7 @@ namespace BlackMisc template bool containsByValue(MembFunc membFunc, ReturnValue returnValue) const { - return containsByValue(BlackMisc::Predicates::MemberEqual(membFunc, returnValue)); + return containsByValue(BlackMisc::Predicates::MemberEqual(membFunc, returnValue)); } //! Remove elements for which a given predicate for value returns true. @@ -236,14 +236,14 @@ namespace BlackMisc template void removeByKeyIf(MembFunc membFunc, ReturnValue returnValue) { - removeByKeyIf(BlackMisc::Predicates::MemberEqual(membFunc, returnValue)); + removeByKeyIf(BlackMisc::Predicates::MemberEqual(membFunc, returnValue)); } //! Remove elements for which value matches a particular pair. template void removeByValueIf(MembFunc membFunc, ReturnValue returnValue) { - removeByValueIf(BlackMisc::Predicates::MemberEqual(membFunc, returnValue)); + removeByValueIf(BlackMisc::Predicates::MemberEqual(membFunc, returnValue)); } //! \copydoc BlackMisc::CValueObject::toQVariant diff --git a/src/blackmisc/predicates.h b/src/blackmisc/predicates.h index e020eb479..8f42b9fff 100644 --- a/src/blackmisc/predicates.h +++ b/src/blackmisc/predicates.h @@ -25,42 +25,42 @@ namespace BlackMisc template struct MemberEqual; //! \private - template struct MemberEqual + template struct MemberEqual { M m; V v; MemberEqual(M m_, V v_) : m(m_), v(v_) {} - bool operator()(const T &obj) const { return (obj.*m)() == v; } + template bool operator()(const T &obj) const { return (obj.*m)() == v; } }; //! \private - template struct MemberEqual + template struct MemberEqual { - MemberEqual head; - MemberEqual tail; + MemberEqual head; + MemberEqual tail; MemberEqual(M m, V v, Tail... tail_) : head(m, v), tail(tail_...) {} - bool operator()(const T &obj) const { return head(obj) && tail(obj); } + template bool operator()(const T &obj) const { return head(obj) && tail(obj); } }; //! \private template struct MemberLess; //! \private - template struct MemberLess + template struct MemberLess { M m; MemberLess(M m_) : m(m_) {} - bool operator()(const T &a, const T &b) const { return (a.*m)() < (b.*m)(); } - bool isStable(const T &a, const T &b) const { return (a.*m)() != (b.*m)(); } + template bool operator()(const T &a, const T &b) const { return (a.*m)() < (b.*m)(); } + template bool isStable(const T &a, const T &b) const { return (a.*m)() != (b.*m)(); } }; //! \private - template struct MemberLess + template struct MemberLess { - MemberLess head; - MemberLess tail; + MemberLess head; + MemberLess tail; MemberLess(M m, Tail... tail_) : head(m), tail(tail_...) {} - bool operator()(const T &a, const T &b) const { return head.isStable(a, b) ? head(a, b) : tail(a, b); } + template bool operator()(const T &a, const T &b) const { return head.isStable(a, b) ? head(a, b) : tail(a, b); } }; } //namespace Private @@ -70,10 +70,10 @@ namespace BlackMisc * \param vs Pairs of { pointer to member function of T, value to compare it against }. * \return A unary functor whose operator() which will perform the actual test. */ - template - typename Private::MemberEqual MemberEqual(Ts... vs) + template + typename Private::MemberEqual MemberEqual(Ts... vs) { - return typename Private::MemberEqual(vs...); + return typename Private::MemberEqual(vs...); } /*! @@ -81,10 +81,10 @@ namespace BlackMisc * \param vs Pointers to member functions of T. * \return A binary functor whose operator() which will perform the actual test. */ - template - typename Private::MemberLess MemberLess(Ts... vs) + template + typename Private::MemberLess MemberLess(Ts... vs) { - return typename Private::MemberLess(vs...); + return typename Private::MemberLess(vs...); } } //namespace Predicates diff --git a/src/blackmisc/sequence.h b/src/blackmisc/sequence.h index 9be92b791..2d012aaac 100644 --- a/src/blackmisc/sequence.h +++ b/src/blackmisc/sequence.h @@ -308,7 +308,7 @@ namespace BlackMisc template void applyIf(K1 key1, V1 value1, const CIndexVariantMap &newValues) { - applyIf(BlackMisc::Predicates::MemberEqual(key1, value1), newValues); + applyIf(BlackMisc::Predicates::MemberEqual(key1, value1), newValues); } /*! @@ -354,7 +354,7 @@ namespace BlackMisc template void replaceIf(K1 key1, V1 value1, const T &replacement) { - replaceIf(BlackMisc::Predicates::MemberEqual(key1, value1), replacement); + replaceIf(BlackMisc::Predicates::MemberEqual(key1, value1), replacement); } /*! @@ -407,7 +407,7 @@ namespace BlackMisc */ template void sortBy(K1 key1, Keys... keys) { - sort(BlackMisc::Predicates::MemberLess(key1, keys...)); + sort(BlackMisc::Predicates::MemberLess(key1, keys...)); } /*! @@ -429,7 +429,7 @@ namespace BlackMisc template CSequence sortedBy(K1 key1, Keys... keys) const { - return sorted(BlackMisc::Predicates::MemberLess(key1, keys...)); + return sorted(BlackMisc::Predicates::MemberLess(key1, keys...)); } /*!