Metatrader MQL4: невозможно определить значения функций по умолчанию в файле .mqh - PullRequest
0 голосов
/ 07 мая 2011

Я не могу понять, как определить значения по умолчанию для функций в моей библиотеке. Значения по умолчанию, как правило, игнорируются, и я получаю сообщение об ошибке «неверный подсчет параметров»

Вот мой пример. Я создал простую тестовую библиотеку experts\libraries\test.mq4:

void test(int i = 0) // Note the default value for "i"
{
}

Затем я создал .mqh файл как experts\include\test.mqh:

#import "test.ex4"
void test(int i = 0); // Note the default value for "i"
#import

Теперь я создаю простого эксперта «expert \ simpletest.mq4»:

#include <test.mqh>
int start()
{
    // Should be able to call test() function without providing any arguments,
    // because it has default value.
    // If I change this line to test(0), everything compiles correctly
    test(); // Causes "wrong parameters count" compilation error

    return(0);
}

И я получаю следующую ошибку при вызове функции test ():

')' - неверный счетчик параметров

Если я изменю этот вызов функции на test(0), все скомпилируется, но я смогу вызвать функцию test() без предоставления каких-либо параметров, потому что у меня есть значение по умолчанию для первого параметра в файле .mqh, например: void тест (int i = 0); Почему он не использует значение по умолчанию?

Я ищу в Google любую подсказку, но не могу найти никаких ссылок на эту проблему. Кто-нибудь знает?

1 Ответ

4 голосов
/ 05 октября 2011

Это невозможно, как указано в документации MQL :

Функции библиотеки MQL4, импортированные в другие модули, не могут иметь параметры, инициализированные по умолчанию.

...