5 / 5 / 0
Регистрация: 10.10.2014
Сообщений: 86
|
||||||||||||||||
1 | ||||||||||||||||
Enum forward declaration - как достать базовый тип?01.11.2018, 19:26. Показов 1443. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |