Does dmd have SSE intrinsics?
Jeremie Pelletier
jeremiep at gmail.com
Tue Sep 22 20:06:26 PDT 2009
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!
More information about the Digitalmars-d
mailing list