Boost logo

Boost :

Subject: Re: [boost] Boost.Convert. Take 2.
From: Rob Stewart (robertstewart_at_[hidden])
Date: 2014-02-21 10:34:44


On February 21, 2014 5:48:32 AM EST, alex <alexhighviz_at_[hidden]> wrote:
>
>
>>>All loops are actually like
>>>
>>>for (int k = 0; k < local::num_cycles; ++k)
>>>{
>>> int k = boost::convert<int>::from("12345", ccnv).value();
>>> BOOST_ASSERT(k == 12345);
>>>}
>>>
>>>Do you think there still might be something I missed?
>>
>>The assertion won't help in an optimized build, of course. Save the
>values and
>>print them at the end, after you've captured the elapsed times.
>>
>
>Isn't it also a problem that the inside of the loop doesn't vary? A
>smart
>compiler may decide to evaluate boost::convert<int>::from("12345",
>ccnv).value() only once and re-use the result?

Of course, yes. I should have noticed that. Incrementing a value each iteration and printing that value at the end should work. Overflow isn't important. Just using the final value in an opaque way will prevent optimizing away the conversions in the loops.

___
Rob

(Sent from my portable computation engine)


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk