57 lines
1.5 KiB
MQL5
57 lines
1.5 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| TypeUserEnum.mq5 |
|
|
//| Copyright 2021, MetaQuotes Ltd. |
|
|
//| https://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
|
|
#property copyright "Copyright 2021, MetaQuotes Ltd."
|
|
#property link "https://www.mql5.com"
|
|
#property version "1.00"
|
|
|
|
#define PRT(A) Print(#A, "=", (A))
|
|
|
|
const int zero = 0; // runtime value is not known at compile time
|
|
|
|
enum
|
|
{
|
|
MILLION = 1000000 // value known at compile time
|
|
};
|
|
|
|
enum RISK
|
|
{
|
|
// OFF = zero, // error: constant expression required
|
|
LOW = -1,
|
|
MODERATE = -2,
|
|
HIGH = -3,
|
|
};
|
|
|
|
enum INCOME
|
|
{
|
|
LOW = 1,
|
|
MODERATE = 2,
|
|
HIGH = 3,
|
|
ENORMOUS = MILLION,
|
|
};
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Script program start function |
|
|
//+------------------------------------------------------------------+
|
|
void OnStart()
|
|
{
|
|
enum INTERNAL
|
|
{
|
|
ON,
|
|
OFF,
|
|
};
|
|
|
|
//int x = LOW; // warning: ambiguous access, can be one of
|
|
int x = RISK::LOW;
|
|
int y = INCOME::LOW;
|
|
|
|
PRT(RISK::LOW);
|
|
PRT(INCOME::LOW);
|
|
PRT(OFF);
|
|
}
|
|
|
|
//int z = OFF; // error: 'OFF' - undeclared identifier
|
|
//+------------------------------------------------------------------+
|