Boost logo

Boost Users :

From: Ô¬Ïþ»Ô (farproc_at_[hidden])
Date: 2006-07-26 09:11:18


Thank you very much!

I have two points now:
1. There may be something "improper" in the implementation of the C++
standard library I used:

    #include <sstream>
    std::stringstream ss;
    ss << "9999999999999999999999999999999999999999";
    long long llVar = 0;
    if(!(ss >> llVar))
    {
        std::cout << "wrong!" << endl;
    }
    else
    {
        std::cout << llVar << endl;
    };
Instead of printing "wrong!" it gives me nonsense(9223372036854775807). But
if I change the type of llVar to "long", it will report an error as
expected. It seems that only "long long" type has problem with stringstram
here(I am using MS VS2005).

2. I do not disable exception in my project, because if I use type "long"
with lexical_cast, it will throw a bad_lexical_cast exception when overflow
occured.

2006/7/26, Meißner, Joachim [Rohmann GmbH] <meissner_at_[hidden]>:
>
> Is it possible that you have disabled exceptions in your project?
>
> Regards, Joachim
> > Dear boost-users:
> >
> > I am really sorry for asking shch a silly question, but I
> > really need your help!
> >
> > boost::lexical_cast is a great function to do casting. If I
> > want is to cast from string to a "long long" type value, I
> > can use the follow:
> >
> > long long llVar = lexical_cast<long long>("123456789");
> >
> > It is alright in this circs, but what if:
> >
> > lexical_cast<long
> > long>("9999999999999999999999999999999999999999999999999999999
> > 999999999999999999999");
> >
> > This is an obvious overflow, but I have no way to handle this
> > error, it returns a wrong number without throwing an exception!
> >
> > Any suggestion? Thank you very much!!!
> >
> > Kevin
> >
> >
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net