VS 10.0 で正常にコンパイルされるコードがいくつかありますが、以下の Orders マップにいくつかのアイテムを挿入した後、Microsoft デバッグ ライブラリで「無効な演算子 <」エラーが発生します。私の less 演算子は単純で、8 バイト文字列の char を 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];