我有一些代码在 VS 10.0 中编译得很好,但是在下面的 Orders 映射中插入了一些项目后,我在 Microsoft 调试库中收到“无效的运算符 <”错误。我的 less 运算符很简单,只是将 8 字节字符串 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];