Shriramana Sharma wrote:
> I learnt today to my dismay that there is in fact no number to string
> conversion function in the standard C++ library? I can't do simple
> natural things like:
>
> std :: string a ( 2 ) ;
> std :: string b ( 2.5 ) ;
These conversions are neither simple nor natural.
Look at the printf() documentation, and note how much of it applies to
formatting numeric values. Base, precision, field width, leading
zeroes/spaces, exponential notation. And that's aside from locale
issues (e.g. decimal separator), which aren't described there.
> The three ways out of this problem I got to know:
>
> 1. stringstream from std, resulting in somewhat unweildy operations
> 2. lexical_cast from boost, resulting in dependency on huge boost lib
> 3. QString from Qt, resulting in depdency on huge Qt lib
>
> Of course stdc++ is also a huge lib, but thought I can expect stdc++ to
> be there on more machines than boost or Qt.
>
> So shall I go with std::string and std::stringstream, std::string and
> boost::lexical_cast or simply Qt's QString? QString seems most
> appealing, but I would listen to your better judgment.
If the std::ostream formatting operators are sufficient, then use
std::ostringstream, otherwise write your own.
Don't use substantial external libraries just for a few utility
functions.
--
Glynn Clements <glynn@xxxxxxxxxxxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux Assembler]
[Git]
[Kernel List]
[Fedora Development]
[Fedora Announce]
[Autoconf]
[Yosemite Campsites]
[Yosemite News]
[GCC Help]