[Issue 24837] New: Can't version() or static if() to include keys in an enum
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Oct 29 03:23:03 UTC 2024
https://issues.dlang.org/show_bug.cgi?id=24837
Issue ID: 24837
Summary: Can't version() or static if() to include keys in an
enum
Product: D
Version: D2
Hardware: All
URL: http://dlang.org/
OS: All
Status: NEW
Severity: normal
Priority: P3
Component: dmd
Assignee: nobody at puremagic.com
Reporter: turkeyman at gmail.com
I'm trying to update some of the WIN32 API bindings in druntime, but a lot of
them have enums, where additional keys have been introduced in different API
versions.
The problem is, we can't have static if() or version() appear inside of lists.
Basically, in order to create correct bindings, I want this to work:
static if (NTDDI_VERSION >= NTDDI_LONGHORN)
{
enum FILE_INFO_BY_HANDLE_CLASS
{
FileBasicInfo,
FileStandardInfo,
FileNameInfo,
FileRenameInfo,
FileDispositionInfo,
FileAllocationInfo,
FileEndOfFileInfo,
FileStreamInfo,
FileCompressionInfo,
FileAttributeTagInfo,
FileIdBothDirectoryInfo,
FileIdBothDirectoryRestartInfo,
FileIoPriorityHintInfo,
FileRemoteProtocolInfo,
FileFullDirectoryInfo,
FileFullDirectoryRestartInfo,
static if (NTDDI_VERSION >= NTDDI_WIN8)
{
FileStorageInfo,
FileAlignmentInfo,
FileIdInfo,
FileIdExtdDirectoryInfo,
FileIdExtdDirectoryRestartInfo,
}
static if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
{
FileDispositionInfoEx,
FileRenameInfoEx,
}
static if (NTDDI_VERSION >= NTDDI_WIN10_19H1)
{
FileCaseSensitiveInfo,
FileNormalizedNameInfo,
}
MaximumFileInfoByHandleClass
}
alias PFILE_INFO_BY_HANDLE_CLASS = FILE_INFO_BY_HANDLE_CLASS*;
}
--
More information about the Digitalmars-d-bugs
mailing list