Russian Qt Forum
Июля 02, 2025, 04:48
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Предупреждение ISO C++ says that these are ambiguous...
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Предупреждение ISO C++ says that these are ambiguous... (Прочитано 11504 раз)
Максим
Гость
Предупреждение ISO C++ says that these are ambiguous...
«
:
Августа 05, 2016, 17:03 »
Доброго времени суток.
Есть у меня конструкция типа:
Код:
#define NAK 0x15
Компилятор MinGW на неё выдаёт предупреждение:
Цитировать
ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second
Что он пытается мне этим сказать?
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #1 :
Августа 05, 2016, 18:17 »
на какую строчку выдается предупреждение? прямо на дефайн?
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Максим
Гость
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #2 :
Августа 05, 2016, 23:54 »
Цитировать
прямо на дефайн?
да
Записан
Максим
Гость
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #3 :
Августа 05, 2016, 23:55 »
Собственно, у меня с десяток таких дефайнов, чтобы уйти от магических чисел. На каждый из них компилятор недовольно бурчит.
Записан
PimenS
Крякер
Offline
Сообщений: 371
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #4 :
Августа 06, 2016, 00:25 »
Цитата: Максим от Августа 05, 2016, 17:03
Компилятор MinGW на неё выдаёт предупреждение:
Цитировать
ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second
MinGW какой версии?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #5 :
Августа 06, 2016, 06:18 »
Попробуйте десятичное 21 или даже константу
Код
C++ (Qt)
const
int
NAK
=
0x15
;
Записан
Bepec
Гость
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #6 :
Августа 06, 2016, 09:15 »
На мой взгляд у вас где то имеется переменная NAK. Проверьте на всякий случай.
PS обычно ошибка ведёт на дефайн, но перед или после ошибки есть уточнения, не выделяемые ошибкой, но ведущие на строки где эта ошибка произошла. Это если в креаторе.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #7 :
Августа 06, 2016, 09:27 »
Цитата: Bepec от Августа 06, 2016, 09:15
На мой взгляд у вас где то имеется переменная NAK. Проверьте на всякий случай.
Тогда однозначно ошибка (а не предупреждение). Если уж гадать - то, возможно, он понимает этот литерал как "unsigned", и когда дело доходит до присвоения - начинает вякать.
Записан
Максим
Гость
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #8 :
Августа 08, 2016, 09:00 »
Цитировать
возможно, он понимает этот литерал как "unsigned", и когда дело доходит до присвоения - начинает вякать.
Нет, контекстная подсказка говорит, что это для него знаковый int.
Может компилятору в принципе не нравится факт определения числа дефайном? В мануалах, к шарпу, например, прямым текстом написано, что не рекомендуется в таких случаях пользоваться дефайном - задавайте, мол, константы.
«
Последнее редактирование: Августа 08, 2016, 09:15 от Максим
»
Записан
Максим
Гость
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #9 :
Августа 08, 2016, 09:14 »
Цитата: PimenS от Августа 06, 2016, 00:25
MinGW какой версии?
5.3.0
«
Последнее редактирование: Августа 08, 2016, 09:23 от Максим
»
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #10 :
Августа 08, 2016, 10:00 »
Прогони через препроцессор ( g++ -E file.cpp [options] > file.cpp.out ) и посмотри в выводе как раскрываются твои defines.
Записан
Qt 5.11/4.8.7 (X11/Win)
Максим
Гость
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #11 :
Августа 08, 2016, 10:28 »
Цитата: GreatSnake от Августа 08, 2016, 10:00
Прогони через препроцессор ( g++ -E file.cpp [options] > file.cpp.out ) и посмотри в выводе как раскрываются твои defines.
Я под виндой
Записан
Brono
Гость
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #12 :
Августа 08, 2016, 10:54 »
Цитата: Максим от Августа 08, 2016, 10:28
... Я под виндой
"Под виндой" Qt обычно добавляет терминал, через который это можно сделать. Посмотри в "Пуск->...->Qt->{версия Qt}->{версия компилятора}->Qt ... for Desktop ... (с иконкой терминала)". В запустившемся терминале можно вызвать g++ (Проверено только что на Win7)
Записан
Максим
Гость
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #13 :
Августа 08, 2016, 12:01 »
Цитата: Brono от Августа 08, 2016, 10:54
"Под виндой" Qt обычно добавляет терминал, через который это можно сделать. Посмотри в "Пуск->...->Qt->{версия Qt}->{версия компилятора}->Qt ... for Desktop ... (с иконкой терминала)". В запустившемся терминале можно вызвать g++ (Проверено только что на Win7)
Да, есть такое. Но при попытке запуска, указав файл cpp, где эти дефайны применяются получил:
Цитировать
имя_файла.h: fatal error :QObject: No such file or directory compilation terminated
Пробовал копировать эти файлы в каталог с g++.exe и запускать команду оттуда. Тот-же результат
Записан
ssoft
Программист
Offline
Сообщений: 584
Re: Предупреждение ISO C++ says that these are ambiguous...
«
Ответ #14 :
Августа 08, 2016, 12:25 »
Цитата: Максим от Августа 05, 2016, 17:03
Цитировать
ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second
Что он пытается мне этим сказать?
Здесь дело не в определении #define, а в месте использования NAK в коде. Возможно, NAK участвует в арифметических операциях или операциях сравнения с типом, отличным от int, например short.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...