Boost logo

Boost :

Subject: Re: [boost] [type_erasure]bug:any(, binding<Concept>) can store wrong type
From: Larry Evans (cppljevans_at_[hidden])
Date: 2012-08-20 07:00:57


On 08/14/12 09:37, Larry Evans wrote:
> On 08/13/12 11:16, Steven Watanabe wrote:
>> AMDG
>>
>> On 08/13/2012 09:06 AM, Larry Evans wrote:
>>> The attached runs OK without any compile or runtime errors.
>>> It seems to create a type_uns<1> from a type_uns<0> although
>>> there's no type_uns<1> CTOR for that.
>>>
>>> This sounds like another instance of the bug reported here:
>>>
>>> http://article.gmane.org/gmane.comp.lib.boost.devel/233101
>>>
>>> Is it?
>>>
>>
>> It's similar, but this is really undefined behavior,
>> since there's no way to detect the problem at compile
>> time. It's also not necessarily possible to add an
>> assertion.
>>
>
> What about detecting this "wrong type store" problem at run-time?
[snip]
>
> To diagnose the "wrong type store" in the example program attached,
> maybe a binary visitor, something with a signature like the
> same_concrete in the attached, could be used.
>
OOPS. same_concrete just takes binding<Concept> args, which
contain no data on which to visit. They just contain the
function table :(

Sorry for noise.

-regards,
Larry
[snip]


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