conversion (unsigned int64)->string
Bonjour.
J'ai un type définit comme suit: (c'est un mot de 64 bits, ou 2 mots de 32 bits)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
typedef union
{
//1 mot de 64 bits
unsigned __int64 motEntier;
//2 mots de 32 bits
struct
{
unsigned int part1;
unsigned int part2;
}mot32;
} Mot64; |
ça je ne peux pas y toucher!
Maintenant, j'essaie de mettre un de ces mots dans un string, mais ça ne marche pas des façons que j'ai essayé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
//init de mon mot:
Mot64 monMot;
monMot.motEntier=982280960055126;
//un petit oss pour la conversion, et un string:
ostringstream oss;
string monString;
//mes essais:
oss << monMot.motEntier;
//compilation error: operator '<<' is ambiguous
oss << (unsigned __int64) monMot.motEntier;
//compilation error: operator '<<' is ambiguous
oss << (double) monMot.motEntier;
//compilation error: conversion from unsigned __int64 to double not implemented, use signed __int64
oss << (signed __int64) monMot.motEntier;
//compilation error: operator '<<' is ambiguous
oss << (int) monMot.mot32.part1 << (int) monMot.mot32.part2
//ca compile et execute, mais evidemment ne me donne pas le bon resultat |
Si quelqu'un a une idée je suis preneur, parce que la je sèche.
Je suis bien allé voir la faq, comment convertir n'importe quel type d'objet en string, mais je ne comprend pas bien les classes templates.