Question about version ( ) keyword

Daniel Kozak via Digitalmars-d digitalmars-d at puremagic.com
Mon Mar 21 13:24:26 PDT 2016



Dne 21.3.2016 v 18:18 Kagamin via Digitalmars-d napsal(a):
> On Monday, 21 March 2016 at 14:51:48 UTC, Vincent R wrote:
>> When I see this code I cannot help thinking of something like:
>>
>> version( CRuntime_Glibc ) || version( FreeBSD ) || version (Solaris)
>> {
>>     if(version(Solaris))
>>        enum PTHREAD_BARRIER_SERIAL_THREAD = -2;
>>     else
>>        enum PTHREAD_BARRIER_SERIAL_THREAD = -1;
>>
>>     int pthread_barrier_destroy(pthread_barrier_t*);
>>     int pthread_barrier_init(pthread_barrier_t*, in 
>> pthread_barrierattr_t*, uint);
>>     int pthread_barrier_wait(pthread_barrier_t*);
>>     int pthread_barrierattr_destroy(pthread_barrierattr_t*);
>>     int pthread_barrierattr_getpshared(in pthread_barrierattr_t*, int*);
>>     int pthread_barrierattr_init(pthread_barrierattr_t*);
>>     int pthread_barrierattr_setpshared(pthread_barrierattr_t*, int);
>> }
>> else version (OSX) ||version (CRuntime_Bionic)
>> {
>> }
>> else
>> {
>>     static assert(false, "Unsupported platform");
>> }
>
> Even shorter:
>
> version(Solaris)
>    enum PTHREAD_BARRIER_SERIAL_THREAD = -2;
> else
>    enum PTHREAD_BARRIER_SERIAL_THREAD = -1;
>
> int pthread_barrier_destroy(pthread_barrier_t*);
> int pthread_barrier_init(pthread_barrier_t*, in 
> pthread_barrierattr_t*, uint);
> int pthread_barrier_wait(pthread_barrier_t*);
> int pthread_barrierattr_destroy(pthread_barrierattr_t*);
> int pthread_barrierattr_getpshared(in pthread_barrierattr_t*, int*);
> int pthread_barrierattr_init(pthread_barrierattr_t*);
> int pthread_barrierattr_setpshared(pthread_barrierattr_t*, int);
I do not see:
static assert(false, "Unsupported platform");

so no, it is not shorter just wrong ;-)


More information about the Digitalmars-d mailing list