Façon d'obtenir unsigned char dans un std::string sans reinterpret_cast?

J'ai un unsigned char tableau que j'ai besoin dans un std::string, mais ma façon actuelle utilise reinterpret_cast que je voudrais éviter. Est-il une manière plus propre de faire cela?

unsigned char my_txt[] = {
  0x52, 0x5f, 0x73, 0x68, 0x7e, 0x29, 0x33, 0x74, 0x74, 0x73, 0x72, 0x55
}
unsigned int my_txt_len = 12;

std::string my_std_string(reinterpret_cast<const char *>(my_txt), my_txt_len);
  • Et pourquoi vous n'aimez pas reinterpret_cast...?
  • Il semble toujours comme un hack pour forcer un casting, je préfère utiliser des choses comme l'est plutôt que de forcer le compilateur à les traiter comme quelque chose d'autre.
  • Pourquoi ne pas utiliser char pour my_txt; après tout, ces valeurs sont affichées au format ASCii. Cela peut conduire à la résolution d'autres problèmes.
  • C'est un fichier généré, donc je préfère ne pas avoir à traiter.
  • L'initialisation d'un string de unsigned char* semble assez raisonnable pour moi. Je suis surprise de voir que quelqu'un a une objection à vouloir le faire sans l'aide d'un plâtre.
InformationsquelleAutor WilliamKF | 2010-05-15