I can not understand this Error: undefined identifier `cpp_longlong`

Dakota dakota at gmail.com
Wed Nov 20 07:02:25 UTC 2024


```sh
/ldc/import/core/stdc/stdint.d(96): Error: undefined identifier 
`cpp_longlong`
/ldc/import/core/stdc/stdint.d(97): Error: undefined identifier 
`cpp_ulonglong`
/ldc/import/core/stdc/stdint.d(118): Error: undefined identifier 
`cpp_ulong`
```

I am sure it defined because I add static assert to confirm this 
`config.d`:

```d
version (Windows)
{
     enum __c_long  : int;
     enum __c_ulong : uint;

     alias int   c_long;
     alias uint  c_ulong;

     alias __c_long   cpp_long;
     alias __c_ulong  cpp_ulong;

     alias long  cpp_longlong;
     alias ulong cpp_ulonglong;
}
else version (Posix)
{
   static if ( (void*).sizeof > int.sizeof )
   {
     enum __c_longlong  : long;
     enum __c_ulonglong : ulong;

     alias long  c_long;
     alias ulong c_ulong;

     alias long   cpp_long;
     alias ulong  cpp_ulong;

     alias __c_longlong  cpp_longlong;
     alias __c_ulonglong cpp_ulonglong;
   }
   else
   {
     enum __c_long  : int;
     enum __c_ulong : uint;

     alias int   c_long;
     alias uint  c_ulong;

     alias __c_long   cpp_long;
     alias __c_ulong  cpp_ulong;

     alias long  cpp_longlong;
     alias ulong cpp_ulonglong;
   }
   static assert(false);
}
```

If I run a simple test file, it will work.


But in big project there is a lot import circular reference, and 
some args or file order. I get it.


LDC 1.40.0-beta4 for macOS.


I also test on linux ldc 1.40.0-beta4, the error changed:


```sh
/ldc/import/core/sys/posix/sys/types.d(109): Error: undefined 
identifier `c_long`
```









More information about the Digitalmars-d-learn mailing list