Subject: Re: [boost] Workaround for compiler bugs
From: Edward Diener (eldiener_at_[hidden])
Date: 2010-12-06 18:57:16


On 12/6/2010 5:02 PM, Eric Niebler wrote:
> On 12/6/2010 4:38 PM, Edward Diener wrote:
>> The error report to Microsoft is at
>> https://connect.microsoft.com/VisualStudio/feedback/details/624757/incorrect-function-template-deduction-involving-pointor-to-member-data
>
> The only thing that bug report says is:
>
>> An attempt to choose correctly between two function templates when
>> calling a function fails when one of the function templates takes a
>> pointer to member data and the data has an aggregate type.

I agree that is not a full explanation, but then again if you look at
the attachment you see the full example.

>
> In my experience, that's FAR too little information for them to actually
> use. For instance, this program would seem to satisfy your description,
> and yet VC10 compiles it just fine.
>
> struct S { int i; };
>
> template<class T>
> void foo( int S::* ) {}
>
> template<class T>
> void foo( T * ) {}
>
> int main() {
> foo( (char*)0 );
> }
>
> You should always attach a repro to your bug reports.

The attachment in the bug report shows the bug. You probably missed that
there is an attachment illustrating the bug.