[lexical_cast] C4701 local variable 'result' may be used without having been initialized

Hi, I'm using boost::lexical_cast often in my application, but then I use it to convert strings to integral types and the compiler (MSVC 7.1) threw me a warning: C4701: local variable 'result' may be used without having been initialized Looking at lexical_cast implementation I found this template<typename Target, typename Source> Target lexical_cast(Source arg) { detail::lexical_stream<Target, Source> interpreter; // THIS is guilty of not been initialized Target result; if(!(interpreter << arg && interpreter >> result)) throw_exception(bad_lexical_cast(typeid(Source), typeid(Target))); return result; } I was asking myself... why not use Fernando Cacciola's boost::value_initialized to avoid these warnings? template<typename Target, typename Source> Target lexical_cast(Source arg) { detail::lexical_stream<Target, Source> interpreter; // This can't raise any uninitialized related warning boost::value_initialized<Target> result; if(!(interpreter << arg && interpreter >> get(result))) // Must use get idiom throw_exception(bad_lexical_cast(typeid(Source), typeid(Target))); return get(result); // Must use get idiom } Somebody can explain me this? Is this warning a compiler issue? Thanks in advance Berny Cantos AZ Interactive SL

Sorry for BUMP'ing, but it's been a while and I really need to know the answer. Someone can help me? Sorry if my english is not as good as it should be True thanks in advance Berny Cantos AZ Interactive SL
participants (1)
-
Berny Cantos