[Issue 24837] 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 15:28:11 UTC 2024


https://issues.dlang.org/show_bug.cgi?id=24837

apham <apz28 at hotmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |apz28 at hotmail.com

--- Comment #5 from apham <apz28 at hotmail.com> ---
If D supports this extension (similar to class) as below

enum FILE_INFO_BY_HANDLE_CLASS_BASE 
{
    FileBasicInfo,
    FileStandardInfo,
    FileNameInfo,
    FileRenameInfo,
    FileDispositionInfo,
    FileAllocationInfo,
    FileEndOfFileInfo,
    FileStreamInfo,
    FileCompressionInfo,
    FileAttributeTagInfo,
    FileIdBothDirectoryInfo,
    FileIdBothDirectoryRestartInfo,
    FileIoPriorityHintInfo,
    FileRemoteProtocolInfo,
    FileFullDirectoryInfo,
    FileFullDirectoryRestartInfo,
}

enum FILE_INFO_BY_HANDLE_CLASS_NTDDI_WIN8 :
enum(FILE_INFO_BY_HANDLE_CLASS_BASE)
{
    FileStorageInfo,
    FileAlignmentInfo,
    FileIdInfo,
    FileIdExtdDirectoryInfo,
    FileIdExtdDirectoryRestartInfo,
}

enum FILE_INFO_BY_HANDLE_CLASS_NTDDI_WIN10_RS1 :
enum(FILE_INFO_BY_HANDLE_CLASS_NTDDI_WIN8)
{
    FileDispositionInfoEx,
    FileRenameInfoEx,
}

enum FILE_INFO_BY_HANDLE_CLASS_NTDDI_WIN10_19H1 :
enum(FILE_INFO_BY_HANDLE_CLASS_NTDDI_WIN10_RS1)
{
     FileCaseSensitiveInfo,
     FileNormalizedNameInfo,
}

static if (NTDDI_VERSION >= NTDDI_WIN10_19H1)
{
    enum FILE_INFO_BY_HANDLE_CLASS :
enum(FILE_INFO_BY_HANDLE_CLASS_NTDDI_WIN10_19H1)
    {
        MaximumFileInfoByHandleClass
    }    
}
else static if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
{
    enum FILE_INFO_BY_HANDLE_CLASS :
enum(FILE_INFO_BY_HANDLE_CLASS_NTDDI_WIN10_RS1)
    {
        MaximumFileInfoByHandleClass
    }    
}
else static if (NTDDI_VERSION >= NTDDI_WIN8)
{
    enum FILE_INFO_BY_HANDLE_CLASS : enum(FILE_INFO_BY_HANDLE_CLASS_NTDDI_WIN8)
    {
        MaximumFileInfoByHandleClass
    }    
}
else 
{
    enum FILE_INFO_BY_HANDLE_CLASS : enum(FILE_INFO_BY_HANDLE_CLASS_BASE)
    {
        MaximumFileInfoByHandleClass
    }    
}

--


More information about the Digitalmars-d-bugs mailing list