Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / разная компиляция / 12 сообщений из 12, страница 1 из 1
01.04.2019, 21:09
    #39794836
rbo3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
Здравствуйте уважаемые.
Проект компилится без ошибок в Windows7 и Embarcadero 2010. Но ошибка в Windows10 и Embarcadero 10.3
ругается так
Ambiguity between 'std::fabs(long double)' and 'std::fabs(float)'
и показывает на это
fabs((*a1).b != (*a2).b )

фрагмент cpp файла
Код: plaintext
1.
2.
3.
4.
5.
6.
TFloatRastr  TFloatRastr:: SumOfRastrs(TFloatRastr *a1, TFloatRastr *a2)
{
   if (
	     ((*a1).mCols  != (*a2).mCols )
	  || ((*a1).mRows  != (*a2).mRows )
	  || ( fabs((*a1).b  != (*a2).b ) > EPS)



и его h файла
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
class TFloatRastr
  {

	public:
	int mCols;
	int mRows ;
	double b ;
   static TFloatRastr   SumOfRastrs(TFloatRastr *a1, TFloatRastr *a2);



Почему 10 винда так себя ведет странно? Откуда берет ошибку?

Программист,ложась спать, ставит возле себя 2 стакана. Один с водой, если захочет пить, а другой пустой - если не захочет.
...
Рейтинг: 0 / 0
01.04.2019, 21:14
    #39794840
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
rbo3Откуда берет ошибку?

Из твоего текста. Ты берёшь абсолютное значение от булева значения. Скобки перепутал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.04.2019, 21:20
    #39794841
L.Otujktd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
Rbo3, fabs какую сигнатуру имеет? Компилятор не может выбрать к какому-то типу ему привести результат выражения для подстановки в качестве параметра в fabs, т.к. нет явного приведения типа, от этого и ошибка. Приведите к требуемому типу
...
Рейтинг: 0 / 0
01.04.2019, 21:45
    #39794853
L.Otujktd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
Dimitry Sibiryakovrbo3Откуда берет ошибку?

Из твоего текста. Ты берёшь абсолютное значение от булева значения. Скобки перепутал.

Там похоже надо заменить оператор != на ‘-‘ чтобы заработало, опечатка и выполнить приведение типа
...
Рейтинг: 0 / 0
01.04.2019, 21:46
    #39794854
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
Чувак с вещественными числами не работал.

Скорее так надо.

Код: plaintext
1.
 fabs( (*a1).b  - (*a2).b ) > EPS
...
Рейтинг: 0 / 0
01.04.2019, 21:57
    #39794856
L.Otujktd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
maytonЧувак с вещественными числами не работал.

Скорее так надо.

Код: plaintext
1.
 fabs( (*a1).b  - (*a2).b ) > EPS


Копи паста обычная, статический анализ бы помог, имхо
...
Рейтинг: 0 / 0
01.04.2019, 22:11
    #39794864
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
А что статический анализ поможет додумать что имел в виду разработчик?
...
Рейтинг: 0 / 0
02.04.2019, 08:14
    #39794928
L.Otujktd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
[quot mayton]А что статический анализ поможет додумать что имел в виду разработчик?[/quot
Я думаю поможет. А к чему вопрос?
...
Рейтинг: 0 / 0
02.04.2019, 20:15
    #39795412
rbo3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
Спасибо ребят вам пребольшое!
...
Рейтинг: 0 / 0
02.04.2019, 23:08
    #39795450
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
rbo3,

Код: plaintext
1.
(*a1).b == a1->b
...
Рейтинг: 0 / 0
03.04.2019, 12:40
    #39795724
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
Siemargl, люди, пришедшие из явы почему то очень боятся оператора -> ))
...
Рейтинг: 0 / 0
03.04.2019, 12:43
    #39795728
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разная компиляция
Siemargl
Код: plaintext
1.
(*a1).b == a1->b

да кстати, это утверждение верно не всегда. Оператор . не перегружается, в отличие от ->. Можно поиметь неплохой геморрой на пустом месте
Модератор: Топик-стартер - счастлив. Остальное уже не по теме. Закрываем.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / разная компиляция / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]