Я сейчас проверил такой вариант: Ввёл input string и преобразовал строку в число StringToDouble... - проблем не обнаружено.
Или я что-то не так понял в вашем ответе.
Попробуйте сохранить шаблон с советником. В tpl-файле задать длинное число и после применения измененного шаблона посмотреть, как это число воспринимает советник.
Попробуйте сохранить шаблон с советником. В tpl-файле задать длинное число и после применения измененного шаблона посмотреть, как это число воспринимает советник.
Это запуск скрипта.
А на вашем терминале пропускает число длиннее 14ти знаков?
class A
{
public:
int i;
A* operator *( const A &Value ) const
{
A* Res = new A;
Res.i = this.i * Value.i;
return(Res);
}
};
voidOnStart()
{
A a, b, c;
a.i = 2;
b.i = 3;
c.i = 5;
A* d = a * b * c;
Print(d.i); // 30delete d;
}
В коде хорошо видно, что должна быть утечка памяти. И именно это и происходит. Однако, как написать правильно, чтобы можно было "перемножать" объекты? С оператором "*=" все понятно, как и ясно в случае структур. А с классами как реализовать этот простой функционал?
ЗЫ А этот код
class A
{
private:
A Tmp;
public:
int i;
A* operator *( const A &Value )
{
this.Tmp.i = this.i * Value.i;
return(&Tmp);
}
};
voidOnStart()
{
A a, b, c;
a.i = 2;
b.i = 3;
c.i = 5;
A* d = a * b * c;
Print(d.i); // 30
}
Крашит ME по F7 и убивает Терминал по F5. Почему же мне так везет?!
Сколько символов, или знаков допускается ввести в поле input переменной? В документации ограничений не нашёл. Но по факту еть проблемы.
Вот, по умолчанию, поставлено 15 символов включая точку.
Но если попытаться ввести другое число такой-же размерности, то последняя цифра не вводится.
Кто-то может дать объяснение?
Терминал в /portable режиме.Числовые значения парсятся из tpl-файлов. Скорее всего, StringToDouble обладает подобными ограничениями.
Я сейчас проверил такой вариант: Ввёл input string и преобразовал строку в число StringToDouble... - проблем не обнаружено.
Или я что-то не так понял в вашем ответе.
Я сейчас проверил такой вариант: Ввёл input string и преобразовал строку в число StringToDouble... - проблем не обнаружено.
Или я что-то не так понял в вашем ответе.
Попробуйте сохранить шаблон с советником. В tpl-файле задать длинное число и после применения измененного шаблона посмотреть, как это число воспринимает советник.
Попробуйте сохранить шаблон с советником. В tpl-файле задать длинное число и после применения измененного шаблона посмотреть, как это число воспринимает советник.
Это запуск скрипта.
А на вашем терминале пропускает число длиннее 14ти знаков?
Это запуск скрипта.
Без разницы
А на вашем терминале пропускает число длиннее 14ти знаков?
При вводе, как оказалось, зависит от того, какие цифры набираешь. Некоторые не позволяет набирать. А что-то - позволяет.
Без разницы
При вводе, как оказалось, зависит от того, какие цифры набираешь. Некоторые не позволяет набирать. А что-то - позволяет.
Странное поведение... Если набрать целую часть числа меньше 12ти знаков, то может пропустить общее количество больше 14ти.
Подождём что ответят разработчики.
В коде хорошо видно, что должна быть утечка памяти. И именно это и происходит. Однако, как написать правильно, чтобы можно было "перемножать" объекты? С оператором "*=" все понятно, как и ясно в случае структур. А с классами как реализовать этот простой функционал?
ЗЫ А этот код
Крашит ME по F7 и убивает Терминал по F5. Почему же мне так везет?!
ЗЫ А этот код
Крашит ME по F7 и убивает Терминал по F5. Почему же мне так везет?!
Возможно бесконечная рекурсия и переполнение стека.
Возможно бесконечная рекурсия и переполнение стека.
Безусловно, проблема в выделенном, но причина, похоже, глубже.
И во время выполнения, очевидно, никакой рекурсии быть не должно.