со вчерашней обновы на 2470 перестало компилироваться
кто знает что делать как пофиксить?
Думал у меня половина кода на этой логике... аннн нет все компилируеться.
В вашем же случае остается только преобразовывать класс
со вчерашней обновы на 2470 перестало компилироваться
кто знает что делать как пофиксить?
О подобного рода проблеме неоднократно сообщалось ранее:
MT5(build 2390)) ** (up)
Compile Error, баг при попытке доступа к internal class для шаблонного параметра шаблонной функции.
Возможное обходное решение:
template<typename T> struct GetTypeClass{ class type : public T{}; }; class Class{ public: virtual void f(){ printf("1"); }; }; template<typename T> class Template : public T{ public: virtual void f(){ GetTypeClass<T>::type::f(); printf("2"); }; }; Template<Class>* c=new Template<Class>(); void OnStart(){ c.f(); // 1 2 delete c; }
void OnStart() { hhc.f(); } //+------------------------------------------------------------------+ class Class { public: void f() {Print("wow"); }; }; template<typename T> class Template : public T { public: //void f() { T::f(); } //<-- новый компилятор не видит функцию f переданого класса void f() { ((T)(this)).f(); }; //работает приведение класса }; Template<Class>* hhc=new Template<Class>();
f() { ((T)(this)).f(); };
очень читаемо :-) ещё чуть и оператор (_|_) станет общей практикой
Так скоро MQL начнёт напоминать худшее из плюсов :-)
PS/ кстати: рад видеть, слышать !
очень читаемо :-) ещё чуть и оператор (_|_) станет общей практикой
Так скоро MQL начнёт напоминать худшее из плюсов :-)
PS/ кстати: рад видеть, слышать !
Взаимно!
Тут кстати оператор "равно" перестал наследоваться через класс. С другими операторами все ок.... Не в курсе чего это так?
очень читаемо :-) ещё чуть и оператор (_|_) станет общей практикой
не получится, видимо главная комиссия по стандартам языка С++ учла этот момент заранее
бинарная операция ИЛИ требует операнд слева и справа, а знак подчеркивания запрещен синтаксисом языка как самостоятельное имя идентификатора
но выход есть! Ж. с ручками:
int _o = 1, o = 0, o_ = 1; o = (o_|_o);
не получится, видимо главная комиссия по стандартам языка С++ учла этот момент заранее
бинарная операция ИЛИ требует операнд слева и справа, а знак подчеркивания запрещен синтаксисом языка как самостоятельное имя идентификатора
но выход есть! Ж. с ручками:
Дефайны в помощь
не получится, видимо главная комиссия по стандартам языка С++ учла этот момент заранее
бинарная операция ИЛИ требует операнд слева и справа, а знак подчеркивания запрещен синтаксисом языка как самостоятельное имя идентификатора
но выход есть! Ж. с ручками:
лень эксперементировать, но наверное можно задефайнить..
#define _ foo
int _ () {
static int i=5;
return (i--)>2;
}
int main() {
...
if (_|_) {
}
..
}
хм... прям критическая секция исполнения получилась
if(_|_)
{
...
}
хм... прям критическая секция исполнения получилась

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
со вчерашней обновы на 2470 перестало компилироваться
кто знает что делать как пофиксить?