- #include <iostream>
- #include <sstream>
-
- template < class T >
- struct check_string
- {
- static void from_string( const std::string & src, T & dest )
- {
- // créer un flux à partir de la chaîne donnée
- std::istringstream iss( src );
-
- // Conversion vers Dest
- iss >> dest;
- }
-
- };
-
- template < >
- struct check_string < std::string >
- {
- static void from_string( const std::string & src, std::string & dest )
- {
- dest = src;
- }
- };
-
-
- template < class T >
- void from_string( const std::string & src, T & dest )
- {
- check_string<T>::from_string( src, dest );
- }
-
-
- /*********************************************/
- //exemple :
- string s1("12");
- string s2("14.6");
- string s3("chaine de caractère");
-
- int a;
- float b;
- string s;
-
- // Convertit le 1er argument dans le type du 2eme
- from_string(s1,a);
- from_string(s2,b);
- from_string(s3,s);
-
- std::cout << a << std::endl;
- std::cout << b << std::endl;
- std::cout << s << std::endl;
#include <iostream>
#include <sstream>
template < class T >
struct check_string
{
static void from_string( const std::string & src, T & dest )
{
// créer un flux à partir de la chaîne donnée
std::istringstream iss( src );
// Conversion vers Dest
iss >> dest;
}
};
template < >
struct check_string < std::string >
{
static void from_string( const std::string & src, std::string & dest )
{
dest = src;
}
};
template < class T >
void from_string( const std::string & src, T & dest )
{
check_string<T>::from_string( src, dest );
}
/*********************************************/
//exemple :
string s1("12");
string s2("14.6");
string s3("chaine de caractère");
int a;
float b;
string s;
// Convertit le 1er argument dans le type du 2eme
from_string(s1,a);
from_string(s2,b);
from_string(s3,s);
std::cout << a << std::endl;
std::cout << b << std::endl;
std::cout << s << std::endl;