STL оператор less и ошибка "invalid operator<"

У меня есть код, который прекрасно компилируется в VS 10.0, но после вставки нескольких элементов в карту Orders ниже я получаю ошибку "invalid operator <" в отладочной библиотеке Microsoft. Мой оператор less прост, он просто сравнивает 8-байтовую строку char by char. У кого-нибудь есть идеи, почему я могу получить эту ошибку?

typedef struct MY_orderID_t
{
    char orderID[8];
} MY_orderID_t;

struct std::less<MY_orderID_t>
{ 
   bool operator()(const MY_orderID_t& k1, const MY_orderID_t& k2) const
   {
       for( int i=0; i < 8; i++ )
       {
           if( k1.orderID[i] < k2.orderID[i] )
           return( true );
       }
       return( false );
   }
};

std::map< MY_orderID_t, MY_order_t > Orders[5];
14
задан TylerH 12 February 2019 в 20:33
поделиться