У меня есть код, который прекрасно компилируется в 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];