5 / 5 / 0
Регистрация: 10.10.2014
Сообщений: 86
|
||||||||||||||||
1 | ||||||||||||||||
Enum forward declaration - как достать базовый тип?01.11.2018, 19:26. Показов 1452. Ответов 3
Метки нет (Все метки)
Доброго времени суток.
Есть *.h файл, в котором нужно сделать forward declaration enum (не enum class). Первое что приходит в голову:
Поэтому второе что приходит в голову:
Есть красивый выход из этой ситуации?
0
|
01.11.2018, 19:26 | |
Ответы с готовыми решениями:
3
При создании enum 'имя1' class 'имя2' ошибка use of enum 'имя1' without previous declaration typeid определяет тип указателя на базовый класс, как тип "базовый класс". Вне зависимости от присвоенного ему значения Forward declaration Forward declaration |
900 / 477 / 93
Регистрация: 10.06.2014
Сообщений: 2,698
|
|
01.11.2018, 19:56 | 2 |
Создайте структуру а в нем enum
В качестве forward declaration используйте тип структуры К элементам перечисления можно будет обращаться так: structname::enum_element Должно сработать
0
|
5 / 5 / 0
Регистрация: 10.10.2014
Сообщений: 86
|
||||||
02.11.2018, 11:15 [ТС] | 3 | |||||
Проблема оказалась не в gcc, а в кривых руках
Вот так скомпилировалось (по другим причинам ушел с C++14 к C++11):
0
|
5 / 5 / 0
Регистрация: 10.10.2014
Сообщений: 86
|
|
03.11.2018, 09:32 [ТС] | 4 |
Нет, все же так делать не стоит, большинство компиляторов будут ругаться не совпадающие underlying типы, даже если по факту они будут совпадать. Дело в том, что они требуют явного указания типов в обоих местах при использовании forward declaration.
В итоге красивого решения этой проблемы нет. Я плюнул и переписал на PIMPL
0
|
03.11.2018, 09:32 | |
03.11.2018, 09:32 | |
Помогаю со студенческими работами здесь
4
Unsatisfied forward or external declaration Unsatisfied forward or external declaration Forward declaration и рекурсивный include Не компилируется модуль: Forward declaration not solved Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
|
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента!
4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве).
Первое вводное занятие. . .
|