@4elovek37
Программист C++

Enum forward declaration — как достать базовый тип?

Есть *.h файл, в котором нужно сделать forward declaration enum (не enum class).
Первое что приходит в голову:
enum myEnum : int;
Это работает, но это не совсем правильно в кросплатформенном (Win 64 msvc, Linux 64 gcc) коде явно указывать тип данных явно (в хедере, который мы форвардим, тип данных дня enum указать возможности нет, там C++03)
Поэтому второе, что приходит в голову:
#include <type_traits>
enum enum_dummy { }
enum myEnum : std::underlying_type_t<enum_dummy>;

Но gcc не понимает, что я хочу сделать.
Есть красивый выход из этой ситуации?
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 1
@4elovek37 Автор вопроса
Программист C++
Проблема оказалась не в gcc, а в кривых руках :) Вот так компилируется:
enum enum_dummy {  };
enum myEnum : std::underlying_type<enum_dummy>::type;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы