#include <iostream>
#include <string>
#include <sstream>
using namespace std;
template <class T>
string T_as_string(T param)
{
ostringstream ost;
ost << param;
return ost;
}
template <class T>
T string_as_T(const string param)
{
T t;
istringstream ist(param);
ist >> t;
return t;
}
int main()
{
string Str = T_as_string<float>(3.139);
cout << "Float to string: " << Str << endl;
int P = string_as_T<int>("3941");
cout << "String to int: " << P << endl;
return 0;
}
And the error that I'm getting:
1>c:\documents and settings\admin\my documents\visual studio 2008\projects\test\test\src.cpp(27) : warning C4305: 'argument' : truncation from 'double' to 'float' 1>c:\documents and settings\admin\my documents\visual studio 2008\projects\test\test\src.cpp(12) : error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it)' : cannot convert parameter 1 from 'std::ostringstream' to 'std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it' 1> with 1> [ 1> _Elem=char, 1> _Traits=std::char_traits<char>, 1> _Ax=std::allocator<char> 1> ] 1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called 1> c:\documents and settings\admin\my documents\visual studio 2008\projects\test\test\src.cpp(27) : see reference to function template instantiation 'std::string T_as_string<float>(T)' being compiled 1> with 1> [ 1> T=float 1> ]
I have no idea what's going on.
This post has been edited by CodingDesire: 04 January 2010 - 07:52 AM

New Topic/Question
Reply




MultiQuote





|