J'utilise un modèle pour convertir les types intégraux en une représentation sous forme de chaîne de leurs valeurs binaires. J'ai utilisé ce qui suit :
template<typename T>
std::string ToBinary(const T& value)
{
const std::bitset<std::numeric_limits<T>::digits + 1> bs(value);
const std::string s(bs.to_string());
return s;
}
Il fonctionne pour les int mais ne compile pas avec les unsigned int :
unsigned int buffer_u[10];
int buffer_i[10];
...
ToBinary(buffer_i[1]); //compile and works
ToBinary(buffer_u[1]); //doesn't compile -- ambiguous overload
Pouvez-vous expliquer pourquoi ?
EDITAR:
Oui, j'utilise VS2010