Does dmd have SSE intrinsics?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Tue Sep 22 20:23:35 PDT 2009


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



More information about the Digitalmars-d mailing list