Баг МТ5 (build 2375) при вызове функции для аргумента с типом данных color применяется implicit type conversation не смотря на то, что имеется подходящая по сигнатуре перегруженная шаблонная функция с типом данных color. Было очень сложно отловить и воспроизвести данный баг, так как проблема касается только случаев, когда в виде аргумента шаблонной функции используется шаблонный класс, а его шаблонный параметр соответствует шаблонному параметру функции.
#define PRINT(x) ; Print(#x, ":", string(x))
template<typename T>
class A : public T{};
class B {};
class C : public A<B>{};
template<typename _Tp>
class D{
template<typename T>
void test(const A<T>&, constlong){PRINT(__FUNCSIG__);}
template<typename T>
void test(const A<T>&, constulong){PRINT(__FUNCSIG__);}
template<typename T>
void test(const A<T>&, constcolor){PRINT(__FUNCSIG__);}
public:
D(){
C c;
_Tp value = {};
test(c, value); // 'test' - ambiguous call to overloaded function
}
};
voidOnStart(){
D<long> d_long; // Ok
D<ulong> d_ulong; // Ok
D<color> d_color; // Compile Error
}
voidOnStart()
{
class CLASS
{
public:
template <typename T> // template declarations are not allowed in local classesstaticvoid f( T ) {}
};
int i = 0;
CLASS::f(i);
}
в MQL это можно делать, нигде такого не видел, но это работает, с шаблонами правда не пробовал
единственное, где нашел этому применение - можно описать статический экземпляр класса внутри функции и удобно сделать инициализацию сложных расчетов, таким образом можно из нескольких функций которые вызывают друг друга по очереди сделать одну функцию
С чего Вы взяли что угол будет измеряться от Вашего квадрата ?
Угол измеряется относительно цены и масштаба графика.
Приведите график к 1 пункту на 1 пиксель и получите свои 45 градусов.
Думал угол измеряется относительно первой точки трендлинии в пикселях. Квадрат выступал примерным ориентиром. Спасибо за ответ.
Нашли причину? А то у меня тоже вчера началось такое. Что-то с котировками, кажется
Баг МТ5 (build 2375) при вызове функции для аргумента с типом данных color применяется implicit type conversation не смотря на то, что имеется подходящая по сигнатуре перегруженная шаблонная функция с типом данных color.
Было очень сложно отловить и воспроизвести данный баг, так как проблема касается только случаев, когда в виде аргумента шаблонной функции используется шаблонный класс, а его шаблонный параметр соответствует шаблонному параметру функции.
Раньше работало.
Что здесь за проблема?
Раньше работало.
Объявление класса внутри функции?
Объявление класса внутри функции?
в MQL это можно делать, нигде такого не видел, но это работает, с шаблонами правда не пробовал
единственное, где нашел этому применение - можно описать статический экземпляр класса внутри функции и удобно сделать инициализацию сложных расчетов, таким образом можно из нескольких функций которые вызывают друг друга по очереди сделать одну функцию
т.е. "обернуть в функцию класс" - кактотак
Объявление класса внутри функции?
Без шаблонов работает.
Баг МТ5(build 2375) ошибка компиляции при вызове функции через ее указатель, когда используется массив указателей на функцию:
Очень древний баг.
Кто подскажет - в МетаЕдиторе открытые окна файлов, где их список сохраняется для открытия их в дальнейшем?
Периодически МЕ открывается с чистого листа, хотя до этого было открыто куча файлов. Возможно связано с обновлениями.
Хочу вручную бэкапить список, ну или может как-то по другому решается?