Boost logo

Boost :

From: d.frey_at_[hidden]
Date: 2000-12-04 11:41:10

--- In boost_at_[hidden], "Peter Dimov" <pdimov_at_m...> wrote:
> template<class T, class S> struct lexical_cast_helper
> {
> T call(S const & s); // original definition goes here
> };
> template<class T, class S> T lexical_cast(S const& s)
> {
> return lexical_cast_helper<T, S>::call(s);
> }
> Now you can partially specialize lexical_cast_helper<T, S>.

Hm, not me. Maybe I'm not clever enough. I changed lexical_cast as you
suggested and made 'call' a static function. Worked fine. Next, I
tried to specialize it:

typedef const char U[];
template<> string lexical_cast_helper< string, U >::call( const U& arg
   return string( arg );

But my compiler says: parameter type `const char (&)[]' includes reference to array
of unknown bound

Although now the type looks "nearly" correct to me, the compiler wants
to have the actual size. Is this the same problem why I cannot
specialize for T == S? Or do I overlook something?
Regards, Daniel

Boost list run by bdawes at, gregod at, cpdaniel at, john at