Шаблоны функций и приведение типов — что за дискриминация bool? - страница 2

 
Andrey Khatimlianskii:

В идеале, хотелось бы нормального приведения стринга к булу )

А так, конечно, решение есть, и я его использую.

Не существует нормального приведения стринга к булу.

 
Koldun Zloy:

Не существует нормального приведения стринга к булу.

Бул вообще ни при чем. Не бывает приведения по умолчанию данных типа стринг к любому другому типу данных. Описано в документации. Давно. 

Если не понятно, предлагаю преобразовать строку: "Я дома" в переменные типа: 

 - bool 

 - double 

 - желающие могут добавить варианты. 


ЗЫ: Компостер, у Вас системная ошибка, извините. 

Документация по MQL5: Основы языка / Типы данных
Документация по MQL5: Основы языка / Типы данных
  • www.mql5.com
Любая программа оперирует данными. Данные могут быть различных типов в зависимости от назначения. Например, для доступа к элементам массива используются данные целочисленного типа. Ценовые данные имеют тип двойной точности с плавающей точкой. Это связано с тем, что в языке MQL5 не предусмотрено специального типа для ценовых данных. Данные...
 
Алексей Тарабанов:

Если не понятно, предлагаю преобразовать строку: "Я дома" в переменные типа: 

 - bool 

 - double 

 - желающие могут добавить варианты. 


ЗЫ: Компостер, у Вас системная ошибка, извините. 

Double и сейчас приводится, 0.0 :)

Bool можно по аналогии с int, строка "false" - false, все остально true. Или наоборот

 
Oleksii Chepurnyi:

Double и сейчас приводится, 0.0 :)

Bool можно по аналогии с int, строка "false" - false, все остально true. Или наоборот

Ну почему же... Можно ещё строку "0" к false и значение строки, равное NULL туда же.

 
false, no, n, -, null, число меньше или равно нулю
true, yes, y, +, число больше нуля
Остальное на false.
Всё без учёта регистра.
 
Aliaksandr Hryshyn:
false, no, n, -, число меньше или равно нулю
true, yes, y, +, число больше нуля
Остальное на false.

Число меньше нуля нельзя приравнивать к false. Потому, что это true.

 
Artyom Trishkin:

Ну почему же... Можно ещё строку "0" к false и значение строки, равное NULL туда же.

Сейчас bool приводится к string как "true" и "false". Начать хотябы с этих строк, но варианты для маневра - всегда хорошо )
 
Oleksii Chepurnyi:

Double и сейчас приводится, 0.0 :)

Bool можно по аналогии с int, строка "false" - false, все остально true. Или наоборот

Наоборот: я Вам говорю: "Я дома", а Вы говорите, чему это утверждение будет равно в формате double.

 
Начнем с терминологии. Не бывает true и false, бывает набор из 8/16/32/64 бит. У них справка, конечно для недоджунов написана, но принцип тот же 0×0 - false, все остальное true. Так, что любая строка, ненулевой длины - это true. Теперь про приведение их string к различным типам. В принципе никаких проблем реализовать это нет, но тогда следующая тема будет: "я хочу проверить строку на пустоту написав if(!var), ЧТО РАЗВЕ СЛОЖНО РЕАЛИЗОВАТЬ???". ИМХО: нефиг реализацию всяких невнятных вещей просить, даже каст string->int/double считаю, что зря сделан. Кому надо - пишите свою обертку над string и там изголяйтесь как хотите.
PS благая мысль от этой темы возникла: проверить наличие перегрузки приведения класса к типам в mql.
 
Vladimir Simakov:
Начнем с терминологии. Не бывает true и false, бывает набор из 8/16/32/64 бит. У них справка, конечно для недоджунов написана, но принцип тот же 0×0 - false, все остальное true. Так, что любая строка, ненулевой длины - это true. Теперь про приведение их string к различным типам. В принципе никаких проблем реализовать это нет, но тогда следующая тема будет: "я хочу проверить строку на пустоту написав if(!var), ЧТО РАЗВЕ СЛОЖНО РЕАЛИЗОВАТЬ???". ИМХО: нефиг реализацию всяких невнятных вещей просить, даже каст string->int/double считаю, что зря сделан. Кому надо - пишите свою обертку над string и там изголяйтесь как хотите.
PS благая мысль от этой темы возникла: проверить наличие перегрузки приведения класса к типам в mql.

Нут у них. Why? Это уже вопрос к разработчикам.