No need for version expression is a lie

Basile B. b2.temp at gmx.com
Mon Aug 21 15:39:35 UTC 2023


from core.sys.posix.sys.mman:

```d
version (linux)
{
     enum MAP_SHARED     = 0x01;
     enum MAP_PRIVATE    = 0x02;
     enum MAP_FIXED      = 0x10;

     enum MAP_FAILED     = cast(void*) -1;

     version (MICROBLAZE)
         private enum DEFAULTS = true;
     else version (Alpha)
     {
         private enum DEFAULTS = false;
         enum MAP_ANON = 0x10;
         enum MS_ASYNC = 1;
         enum MS_SYNC = 2;
         enum MS_INVALIDATE = 4;
     }
     else version (SH)
         private enum DEFAULTS = true;
     else version (ARM_Any)
         private enum DEFAULTS = true;
     else version (IBMZ_Any)
         private enum DEFAULTS = true;
     else version (IA64)
         private enum DEFAULTS = true;
     else version (HPPA_Any)
     {
         private enum DEFAULTS = false;
         enum MAP_ANON = 0x10;
         enum MS_SYNC = 1;
         enum MS_ASYNC = 2;
         enum MS_INVALIDATE = 4;
     }
     else version (M68K)
         private enum DEFAULTS = true;
     else version (TILE)
         private enum DEFAULTS = true;
     else version (X86_Any)
         private enum DEFAULTS = true;
     else version (MIPS_Any)
     {
         private enum DEFAULTS = false;
         enum MAP_ANON = 0x0800;
         enum MS_ASYNC = 1;
         enum MS_INVALIDATE = 2;
         enum MS_SYNC = 4;
     }
     else version (RISCV_Any)
         private enum DEFAULTS = true;
     else version (SPARC_Any)
         private enum DEFAULTS = true;
     else version (PPC_Any)
         private enum DEFAULTS = true;
     else
         static assert(0, "unimplemented");

     static if (DEFAULTS)
     {
         enum MAP_ANON = 0x20;
         enum MS_ASYNC = 1;
         enum MS_INVALIDATE = 2;
         enum MS_SYNC = 4;
     }
}
```

Like you pretend that `enum DEFAULTS` is not a workaround the 
limitations.


More information about the Digitalmars-d mailing list