mercredi 30 août 2017

С++: “invalid comparator” assert

Here is the code:

struct Payment
{
    Payment(time_t time, float money) : mTime(time), mMoney(money) {}
    bool operator==(const Payment& p) const // exact comparison
    {
        return mTime == p.mTime && mMoney == p.mMoney;
    }
    time_t  mTime;
    float   mMoney;
};

std::vector<Payment>    payments;

auto sortP = [](const Payment& p1, const Payment& p2) { return p1.mTime < p2.mTime || p1.mMoney <= p2.mMoney; };
std::sort(payments.begin(), payments.end(), sortP);

std::sort (sometimes, not always) raises invalid comparator assert in Visual Studio 2015. What's wrong with the code?
enter image description here

Aucun commentaire:

Enregistrer un commentaire