Search code examples
c++logfiles

Conversion problems in C++ (string expected)


I have a function that I cannot touch, Is a "log maker", It puts something to print in a file an show it up when I run the file. The problem is that the function only gets const string so if I want to print something I have to convert everything in this data type (I cannot use cout).

itoa & atoi functions are not standard functions so I cannot use it neither. C++ is very "special" with data types and doesn't accept conversions really easy, so this is my question: How can I convert everytype of data into string for the log purposes?

Probably I should check data type on a function to convert things and returning them into a stringstream (witch I have to convert into a string, of course).

So, any advice on how to do that?


Solution

  • boost::lexical_cast encapsulates the use of ostringstream, so you could use that. Otherwise, the code isn't that difficult:

    template<typename T>
    std::string
    toString( T const& object )
    {
        std::ostringstream results;
        results << object;
        return results.str();
    }
    

    (There's no reason to use stringstream here; ostringstream is largely sufficient.