У меня есть код, который компилируется в VS 10.0, но после вставки нескольких элементов на карту Заказов ниже я получаю ошибку «ошибка <» в библиотеке отладки Microsoft. Мой меньший оператор прост, просто сравнивает 8-байтовый строковый символ char. У кого-нибудь есть идея, почему я получу эту ошибку?Ошибка оператора STL и «неверный оператор <»
Спасибо, Майк
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];
И [это другое сообщение] (http://stackoverflow.com/questions/2282349/specialization-of-templateclass-tp-struct-stdless-in- other-namespace) показывает правильный способ специализации 'std :: less'. –