|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|||||||||||
Непонятное предупреждение компилятора27.01.2021, 21:16. Показов 3462. Ответов 9
Прошу объяснить проедупреждение, которое генерирует Clang для этого кода:
code
Выхлоп clang: warnings
Ссылка на онлайн-компилятор: https://wandbox.org/permlink/a0J8dAEWSmEHKB3c GCC и VS при условно тех же настройках молчат. Первые два про сокрытие имён мне понятны. И, в целом, я понимаю, как от них избавиться, просто вызывать виртуальные функции напрямую через наследников Handler не планируется, поэтому выносить их имена в скоуп наследников нет необходимости. Или я что-то упускаю и в коде зарыта мина? А вот последнее предупреждение я вообще понять не могу, и как это исправить не представляю. Объясните, пожалуйста.Не по теме: Просто надоело редактировать код в куче разных мест, захотелось немного рефлексии. Понимаю, что криво, но по-другому не знаю как. Если подтолкнёте к правильному решению, тоже буду благодарен.
0
|
|||||||||||
| 27.01.2021, 21:16 | |
|
Ответы с готовыми решениями:
9
Непонятное поведение компилятора Предупреждение компилятора только в Release
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||||||||
| 27.01.2021, 21:32 | ||||||||||||
Сообщение было отмечено zayats80888 как решение
Решение
1
|
||||||||||||
|
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,519
|
||||||||||||
| 28.01.2021, 00:12 | ||||||||||||
Сообщение было отмечено zayats80888 как решение
РешениеПредупреждение, кстати, справедливое. Согласно вашей задумке, вы же должны иметь возможность запустить unhandled message: my::A через наследника?А значит, по хорошему, нужно отреагировать на сигнал от компилятора, и немножко исправить код: https://wandbox.org/permlink/UVply9ZKkEhn0lVg
1
|
||||||||||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||||||
| 28.01.2021, 00:31 [ТС] | ||||||
|
И даже в примере, несмотря на то, что вызываем через Test, мы вызываем метод предка(не виртуальный, который и перенаправляет на виртуальный). Или я что-то не так понял?
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||
| 28.01.2021, 00:37 | |||||||
|
Добавлено через 2 минуты Здесь вообще не нужно делать рекурсивное наследование
0
|
|||||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 28.01.2021, 00:41 [ТС] | ||
|
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 28.01.2021, 00:54 | |
|
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 28.01.2021, 12:36 [ТС] | ||
|
Добавлено через 1 час 17 минут
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 28.01.2021, 12:40 | ||
|
0
|
||
|
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,519
|
||||||
| 28.01.2021, 12:54 | ||||||
|
Однако ваша ситуация - тот забавный случай, когда на высказывание: Архитектурно у вас сейчас: - Библиотечный код, который реализует доставку сообщения. - Пользовательский наследник, который реализует обработку различных сообщений. Если вы в своей библиотеке не откроете наследникам доступ: На каком основании? Вы испольнуете полиморфизм тогда, когда вам нужно переопределять поведение. Если по вашей задумке, у вас там строго одно определенное поведение, то вам не нужен полиморфизм. Но если уж вы его использовали - значит предполагается, что поведения могут быть разными. То, что у вас сейчас на на примете только один единственный наследник, не даёт вам оснований ограничивать всю архитектуру одним единственным поведенческим кейсом. Моя первая реакция: Речь не о конкретном наследнике Test, а о наследниках вообще. Зачем проектировать такую архитектуру, которая на ровном месте исскуственно вводит ограничения, в результате которых нельзя будет конструировать полноценных наследников? Вы успешно отработаете своей единственный кейс, а дальше ваша библиотека пойдёт в мусорное ведро, потому что с такими дурацкими ограничениями, она непригодна для полноценного использования. Компилятор сделал предупреждение, потому что он решил, что вы ничайно забыли расшарить видимость методов предков, потому что иначе получается бред.
1
|
||||||
| 28.01.2021, 12:54 | |
|
Помогаю со студенческими работами здесь
10
Предупреждение компилятора применение устаревших библиотек [c++] gcc, почему не подавляется предупреждение компилятора?
Предупреждение компилятора "J' is assigned a value that is never used" Ошибка компилятора fatal error C1091: ограничение компилятора: длина строки превышает 65535 байт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|