Does dmd have SSE intrinsics?

Jeremie Pelletier jeremiep at gmail.com
Tue Sep 22 20:43:25 PDT 2009


Andrei Alexandrescu wrote:
> Jeremie Pelletier wrote:
>> Andrei Alexandrescu wrote:
>>> Daniel Keep wrote:
>>>> Andrei Alexandrescu wrote:
>>>>> Daniel Keep wrote:
>>>>>> P.S. And another thing while I'm at it: why can't we declare void
>>>>>> variables?  This is another thing that really complicates generic 
>>>>>> code.
>>>>> How would you use them?
>>>>>
>>>>>
>>>>> Andrei
>>>>
>>>> Here's an OLD example:
>>>>
>>>> ReturnType!(Fn) glCheck(alias Fn)(ParameterTypeTuple!(Fn) args)
>>>> {
>>>>     alias ReturnType!(Fn) returnT;
>>>>
>>>>     static if( is( returnT == void ) )
>>>>         Fn(args);
>>>>     else
>>>>         auto result = Fn(args);
>>>>
>>>>     glCheckError();
>>>>
>>>>     static if( !is( returnT == void ) )
>>>>         return result;
>>>> }
>>>>
>>>> This function is used to wrap OpenGL calls so that error checking is
>>>> performed automatically.  Here's what it would look like if we could 
>>>> use
>>>> void variables:
>>>>
>>>> ReturnType!(Fn) glCheck(alias Fn)(ParameterTypeTuple!(Fn) args)
>>>> {
>>>>     auto result = Fn(args);
>>>>
>>>>     glCheckError();
>>>>
>>>>     return result;
>>>> }
>>>
>>> ReturnType!(Fn) glCheck(alias Fn)(ParameterTypeTuple!(Fn) args)
>>> {
>>>     scope(exit) glCheckError();
>>>     return Fn(args);
>>> }
>>>
>>> :o)
>>>
>>>
>>> Andrei
>>
>> Calling into a framehandler for such a trivial routine, especially if 
>> used with real time rendering, is definitely not a good idea, no 
>> matter how elegant its syntax is!
> 
> I guess that's what the smiley was about!
> 
> Andrei

I thought it meant "there, problem solved!"

:o)



More information about the Digitalmars-d mailing list