Tôi có một số mã biên dịch tốt trong VS 10.0 nhưng sau khi chèn một vài mục vào bản đồ Đơn hàng bên dưới, tôi nhận được lỗi "toán tử không hợp lệ <" trong thư viện gỡ lỗi của Microsoft. Toán tử ít của tôi là đơn giản, chỉ so sánh chuỗi char 8 byte của char. Bất cứ ai có bất kỳ ý tưởng tại sao tôi sẽ nhận được lỗi này?STL ít toán tử và lỗi "toán tử không hợp lệ <"
Cảm ơn, Mike
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];
Và [bài này khác] (http://stackoverflow.com/questions/2282349/specialization-of-templateclass-tp-struct-stdless-in- không gian tên khác nhau) cho thấy đúng cách để chuyên 'std :: less'. –