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