Re: Implicit conversion to std::string --- bad idea? (really?)
In article <1192563174.380049.144470@t8g2000prg.googlegroups.com>,
Carlos Moreno <cm_news@mailinator.com> wrote:
To make a long story short (we have been already discussing some
of the issues and some of the tangents), the main issue I'd like to
resolve is: would an implicit conversion (to string) operator in
that
class be asking for trouble? In particular, are we risking subtle
bugs
due to unexpected conversions?
I prefer member function to_string() since then there is no hidden
conversions, and any string probably can be returned as well
so if foo has templated member to_string()
template <class C,class A> std::basic_string<C,A> to_string();
then
template <class C,class A>
std::basic_string make_basic_string(const foo & x)
{
return foo.to_string<T,A>(x);
}
std::string make_string(const foo &x)
{
return foo_to_string<char,std::char_traits<char> >(x);
}
similiar make_wstring for wstring's.
this allows getting ussual strings without template notation needed
by user, but allows a string of unsigned char's if desired and machinery
is available.
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]