Russian Qt Forum
Ноябрь 23, 2024, 19:14
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
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... (Прочитано 10859 раз)
Максим
Гость
Предупреждение 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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...