![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Emuneration для индексов массива в Delphi: перевод на С++
monkeyboy © (2007-08-01 13:31:00)В Delphi для задания массива используется тип, и можно использовать enum.
type
TFileTimeKind = (ftkLastModidied, ftkAccessed, ftkCreated);
...
FFileTimes: array[TFiletipeKind] of TFileTime;
Пытаюсь это выразить в С++ :
typedef enum
{
LastModidied,
Accessed,
Created
}
FileTimeKind;
...
FILETIME fileTimes_[3];
Можно ли как-то сделать, чтобы константа 3 вычислялась из диапазона enum ?
monkeyboy (2007-08-01 14:12:00) [1]
> palva ©
Да, наверное именно так надо, спасибо.
monkeyboy (2007-08-01 14:08:00) [2]
> Игорь Шевченко ©
Понятно, спасибо.
То есть, того что хотелось бы, нет.
В моей ситуации тогда лучше сделать три поля.
palva (2007-08-01 13:59:00) [3]Может быть, так?
#include <stdio.h>
typedef enum
{
LastModidied,
Accessed,
Created,
Max_Enum
}
FileTimeKind;
int fileTimes_[Max_Enum];
void main() {
fileTimes_[Created] = 777;
printf("%d\n", fileTimes_[Created]);
}
Игорь Шевченко (2007-08-01 13:54:00) [4]Видел только такое решение:
typedef enum _SYSTEM_POWER_STATE {
PowerSystemUnspecified = 0,
PowerSystemWorking = 1,
PowerSystemSleeping1 = 2,
PowerSystemSleeping2 = 3,
PowerSystemSleeping3 = 4,
PowerSystemHibernate = 5,
PowerSystemShutdown = 6,
PowerSystemMaximum = 7
} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;
#define POWER_SYSTEM_MAXIMUM 7
typedef struct CM_Power_Data_s {
DWORD PD_Size;
DEVICE_POWER_STATE PD_MostRecentPowerState;
DWORD PD_Capabilities;
DWORD PD_D1Latency;
DWORD PD_D2Latency;
DWORD PD_D3Latency;
DEVICE_POWER_STATE PD_PowerStateMapping[POWER_SYSTEM_MAXIMUM];
--------------------------------------------------^^^^^^^^^^^^^^^^^
SYSTEM_POWER_STATE PD_DeepestSystemWake;
} CM_POWER_DATA, *PCM_POWER_DATA;
clickmaker (2007-08-01 13:41:00) [5]typedef enum
{
LastModidied = 1,
Accessed,
Created
}
так что-ли?
Dib@zol (2007-08-01 13:33:00) [6]Эт тебе не сюда, а на http://forum.vingrad.ruнадо (ИМХО).