$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] [Proto] Reducing domain check in operator
From: Eric Niebler (eric_at_[hidden])
Date: 2009-02-27 13:40:51
Joel Falcou wrote:
> Eric Niebler a écrit :
>> joel falcou wrote:
>>> OK.
>>>
>>> Last question. I changed my make_expr to use domain_of and it worked 
>>> nice for the base case.
>>
>> I'm confused. You *were* using domain_of and I told you not to. ???
> No, I wasn't and you did ;)
Still confused.
<snip>
> Here is a small test case :
> 
> http://codepad.org/x1U86VS9
Hey, that codepad thing is pretty cool. OK, I see the following in your 
simd_context class:
   template<class This,class X>
   struct result<This(bp::tag::terminal,X)>
   {
     // NOTE! I added the following assertion:
     BOOST_MPL_ASSERT_NOT((boost::is_reference<X>));
     typedef typename SimdDesc::type type;
   };
   template<class This,class X>
   struct result<This(bp::tag::terminal,simd_value<X>)>
   {
     typedef typename X::type type;
   };
The MPL assertion I added fired, and the type of X was "const 
simd_value<simd_info<int,4>> &". You probably mean for terminals of that 
type to be handled by the following specialization, but its not because 
of the cv qualifier and the reference.
-- Eric Niebler BoostPro Computing http://www.boostpro.com