Проблема с подразумевающимися параметрами функции

 
Господа MQ, помогите п-ста решить следующую проблему - похоже что MQL компилятор не принимает ничего кроме простьх констант в роли подразумевающихся параметров функции.

Однако, вот декларация стандартной MQL функции, TimeToStr:
string TimeToStr(datetime value, int mode=TIME_DATE|TIME_MINUTES);

Хочу написать подобную функцию:
#define LOGTIME_LOCAL	0
#define LOGTIME_SERVER	1
#define LOGTIME_GMT	2

//#define LOGFORMAT_DEFAULT	(TIME_DATE|TIME_MINUTES)

void InitLogLib(double fMyTimeZone,
                int iLogTimeFormatWhat = TIME_DATE|TIME_MINUTES,
                int iLogTimeFormatHow = LOGTIME_GMT )
{
    ...
}
Компилятор не принимает TIME_DATE|TIME_MINUTES как подразумевающийся параметр функции:

'TIME_DATE' - comma expected C:\Program Files\FX\StrategyBuilderFX 4\experts\include\LogLib. mqh (28, 31)

Попробовал ставить TIME_DATE|TIME_MINUTES в скобках или создать специалньй define для етой цели, тот что закоментирован, потому как тоже не работает.

Почему же такое неравноправие? Expressions вроде TIME_DATE|TIME_MINUTES в роли параметра для стандартной функции годятся, а для моей - не годятся? Не хорошо... :)

Поправьте пожалуйста. Или обясните как изпользовать подобнье вьражения для подразумеваюшихся параметров?
Файлы:
loglib.mqh  4 kb
 
4x4ever:
Поправьте пожалуйста. Или обясните как изпользовать подобнье вьражения для подразумеваюшихся параметров?


Могу предложить следующий вариант обхода этой проблемы:

void InitLogLib(double fMyTimeZone,
                int iLogTimeFormatWhat = 0,
                int iLogTimeFormatHow = LOGTIME_GMT )
{
    if( iLogTimeFormatWhat == 0 ) iLogTimeFormatWhat = TIME_DATE | TIME_MINUTES;
    ...
}
Значение по умолчанию (в данном случае 0) нужно выбирать в зависимости от диапазона возможных реальных значений параметра. В большинстве случаев такая подстановка возможна.