Tengo un código que compila bien en VS 10.0 pero después de insertar algunos elementos en el siguiente mapa Pedidos, recibo un error de" operador no válido < "en la biblioteca de depuración de Microsoft. Mi operador menos es simple, solo compara la cadena de 8 bytes char por char. ¿Alguien tiene alguna idea de por qué recibiría este error?Operador STL less y error "operador no válido <
Gracias, 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];
Y [este otro post] (http://stackoverflow.com/questions/2282349/specialization-of-templateclass-tp-struct-stdless-in- different-namespace) muestra la forma correcta de especializar 'std :: less'. –