Boost logo

Boost Users :

Subject: Re: [Boost-users] [uuid] to string problem
From: Saygin Arkan (saygenius_at_[hidden])
Date: 2010-05-12 09:30:06


To turn back to my problem =) , Here's my method:

string GeneratorUtils::getRandomID(){

    random_generator gen;
    uuid u = gen();

    //string str = boost::lexical_cast<string>(u);
    string str = boost::lexical_cast<char*>(u);

    return str;
}

And here's my test code:

int main(){
    cout << "SAYGIN" << endl;

    GeneratorUtils gen;
    cout << gen.getRandomID() << endl;

    return 0;
}

And here's the output:
$ ~/DAIM_MPI_Correlation/utils$ g++ -c GeneratorUtils.cpp
$ g++ -o test GeneratorUtils.cpp
$ ./test
SAYGIN
terminate called after throwing an instance of
'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_lexical_cast>
>'
  what(): bad lexical cast: source type value could not be interpreted as
target
Aborted

Do you have any idea?

On Wed, May 12, 2010 at 4:05 PM, Thorsten Ottosen <nesotto_at_[hidden]> wrote:

> Emil Dotchevski skrev:
>
> On Tue, May 11, 2010 at 6:00 AM, Andy Tompkins <atompkins_at_[hidden]>
>> wrote:
>>
>>> Hmm, I haven't really given it much thought. Since it doesn't need to
>>> be a member function, I would lean toward a standalone function. Do
>>> any other libraries have a similar function? I would likely create:
>>>
>>> template <typename C, typename T, typename A>
>>> std::basic_string<C, T, A> to_basic_string(boost::uuids::uuid const& u);
>>>
>>> as well as,
>>>
>>> std::string to_string(boost::uuids::uuid const& u);
>>> std::wstring to_wstring(boost::uuids::uuid conts& u);
>>>
>>
>> +1, unqualified call to to_string is how Boost Exception converts to
>> string arbitrary objects stored in exception objects. If you use this
>> form and someone adds a UUID to a boost::exception, it'll appear
>> correctly in the output from boost::diagnostic_information.
>>
>
> -1
>
> a to_string() member is IMO much preferred for simplicity and the
> encapsulation perspective. Just like std::bitset<N>::to_string().
>
> There seem to be no standard in Boost for this :-(, e.g. filesystem uses
> ::string(), format uses ::str().
>
> -Thorsten
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>

-- 
H. Saygin Arkan
Tampere University of Tech.
CS / III - +358466646156


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