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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
class Util
{
public:
Util();
~Util();
template <class T>
static std::string ToStr(const T &); // Convertir en string
template <class T>
static int ToInt(const T &); // Convertir en entier
template <class T>
static bool FromStrToAny(const std::string&, T&); // Recoit un string et le converti en un type donné
static void Ecrire(const std::string &, const char*); // Écrit fichier
};
template <class T>
std::string Util::ToStr(const T & value)
{
std::ostringstream oss;
oss << value;
return oss.str();
}
template <class T>
int Util::ToInt(const T & value)
{
std::istringstream iss(value);
int integer;
if (!(iss >> integer)) throw ConversionFailure();
return integer;
}
template<class T>
bool Util::FromStrToAny(const std::string & str, T & out )
{
std::istringstream iss( str );
// tenter output
return iss >> out != 0;
}
void Util::Ecrire(const std::string& text, const char* filename)
{
std::ofstream myfile;
myfile.open(filename, std::ios::out | std::ios::app );
myfile << text << "\n";
myfile.close();
} |