Описание тега enum-class
Классы Enum сочетают в себе аспекты традиционных перечислений (имена значений) с аспектами классов (элементы с заданной областью действия и отсутствие преобразований). Возможность указать базовый тип обеспечивает более простую совместимость и гарантированные размеры перечислений, а также обеспечивает возможность прямого объявления.
1
ответ
Создание экземпляра класса C++11
Я столкнулся со следующей формой создания экземпляра переменной класса enum, и он компилируется без каких-либо предупреждений или ошибок в VS2012: UINT32 id; enum class X {apple, pear, orange}; X myX = X(id); Кроме того, отправка X(id) в качестве ар…
18 окт '12 в 14:51
2
ответа
Оператор C++14 << для вставки потока и класса enum
Я пишу игру, в которой есть 2 игрока, "ЧЕРНЫЙ" и "БЕЛЫЙ". У меня есть следующий enum класс: enum class PlayerType { BLACK, WHITE }; Я хотел бы написать оператор ostream<< для этого класса. Вот моя попытка: std::ostream& operator<<(std::ost…
20 дек '15 в 16:21
1
ответ
Переадресация объявления класса enum не работает
В State.h у меня есть enum class StateID : unsigned int; В State.cpp у меня есть enum class StateID : unsigned int { NullID = 0, MainMenuID, GamePlayID, }; Проблема в том, что любой класс, который включает в себя State.h имеет предварительное объявл…
29 сен '13 в 03:24
1
ответ
enum ввод из xml в C++ программу с использованием boost::property_tree
Как вы читаете enum-класс из XML-файла, используя boost::property_tree библиотека? Я хотел бы избежать чтения его как строки и сопоставления строки с enum-классом в моей программе.
10 дек '13 в 22:14
1
ответ
Почему конструктор не определен?
Хотя я работаю с Bukkit, это проблема Java; Я не знаю, почему Java говорит, что конструктор не определен, так как он определен import org.bukkit.entity.EntityType; import net.minecraft.server.v1_10_R1.EntityCow; import net.minecraft.server.v1_10_R1.…
03 авг '17 в 09:13
3
ответа
Перечислимый класс типа string в C++
- Исходная информация: В C++11 есть класс, называемый enum class, в котором вы можете хранить переменные. Однако я видел только тип класса char: enum class : char { v1 = 'x', v2 = 'y' }; - вопрос: Есть ли способ, которым я могу выразить этот enum-кл…
20 апр '17 в 05:04
2
ответа
Как повторно использовать операторные перегрузки для разных типов?
У меня есть несколько enums определяется следующим образом: enum class Suit { spades = 1, hearts, diamonds, clubs, first = spades, last = clubs }; enum class Rank { six = 6, seven, eight, nine, ten, jack, queen, king, ace, first = six, last = ace };…
29 дек '18 в 20:43
1
ответ
(Де) сериализация класса enum
Я пытаюсь сериализовать и десериализовать (используя QDataStream но это не имеет значения здесь) enum class переменная: enum class Type : char { Trivial, Complex }; Сериализация проста: QDataStream &operator<<(QDataStream &stream, Type…
05 янв '19 в 19:00
0
ответов
Безошибочное преобразование строки в перечисляемый класс
У меня есть такой класс enum (я планирую добавить в него больше опций позже): enum class ViSequencePointType { JumpToValue = 0, RampToValue = 1 }; Затем у меня есть текстовый файл конфигурации, который каждая строка должна представлять одно из значе…
19 фев '19 в 12:23
2
ответа
Добавление побитовых операций и преобразований в bool к перечисленным областям - исследование Christmastide
Допустим, я сумасшедший и решил создать следующее чудовище: #include <type_traits> #include <iostream> // Utility proxy type - convertible back to E but also permits bool conversion // for use in conditions. // // e.g. // Foo f = Foo::Ba…
17 дек '18 в 18:13
4
ответа
Завершение enum класса для Cython
Я пытаюсь обернуть класс enum в заголовочный файл C++ для использования в проекте Cython. Я гуглил и не могу узнать, как этого добиться - поддерживается ли он?
23 июн '15 в 11:45
2
ответа
Как получить enum из boost::property_tree?
Как получить перечисление от boost::property_tree? Это мой "нерабочий" пример. config.xml <root> <fooEnum>EMISSION::EMIT1</fooEnum> <fooDouble>42</fooDouble> </root> main.cpp #include <iostream> #include <…
10 дек '13 в 23:37
1
ответ
Разработанный спецификатор типа для перечисляемой области не должен использовать ключевое слово "класс"
У меня есть следующая спецификация перечисления: enum class FaceDirection : int8 { Down, Up }; g ++ 4.8.1 выдает следующую ошибку: предупреждение: уточненный спецификатор типа для перечисляемой области не должен использовать ключевое слово "класс" Ч…
08 дек '13 в 21:09
2
ответа
Перечисление C++11 с членами класса и оптимизация времени соединения constexpr
В моем проекте у меня много перечислений, которые должны иметь дополнительные атрибуты, связанные с членами перечисления, и вспомогательные статические методы, связанные с типом перечисления. Насколько я знаю, это невозможно сделать со стандартным к…
30 дек '12 в 12:08
1
ответ
Неправильное использование неполного типа struct std::hash с unordered_map с std::pair класса enum в качестве ключа
Я хочу использовать unordered_map<std::pair<enum_class,other_enum_class>,std::uint8_t> для управления некоторыми форматами pixelmap. Вот минимальный код: #include <unordered_map> #include <utility> #include <cstdint> #i…
28 авг '15 в 08:54
1
ответ
Инициализация статического члена класса constexpr типа enum-класса с помощью явной функции преобразования
У меня есть несоответствие между поведением g++ 4.8.1 и clang++ 3.4. У меня есть класс Aбуквального типа, который имеет explicit constexpr функция преобразования в тип enum class E, GCC позволяет мне инициализировать constexpr переменные типа E из к…
07 янв '14 в 13:16
2
ответа
C++: Как заставить функцию принимать объект с тем же именем класса из любого пространства имен?
MainClass.h: namespace Alpha{ enum class Parameters; } namespace Beta { enum class Parameters; } MainClass{ public: enum class Type{ Type_A, Type_B }; MainClass(const Type t); void DoStuff(const Parameters p); private: void doesStuff(const int p_val…
06 янв '15 в 16:17
2
ответа
Синглтон (Традиционный против Enum)
Отказ от ответственности: извинения, если этот вопрос является слишком основным. Я изучаю Синглтон и быстро задаю вопрос о его реализации. Являются ли эти различия чисто предпочтениями в кодировании или я что-то упустил? Синглтон Класс public enum S…
12 мар '17 в 13:26
1
ответ
Битовые маски класса Enum, используемые в шаблоне метода constexpr
У меня есть следующий код C++11 в моем проекте микроконтроллера: template<std::uint32_t... I> struct mask_or; template<> struct mask_or<> { static constexpr std::uint32_t value = 0; }; template<std::uint32_t first, std::uint32_t…
10 июл '15 в 10:16
1
ответ
Неявное преобразование из int в enum класс в операторе switch
enum class pid { Alpha, Beta, Gamma }; int main() { int propId = 2; switch(propId) { case pid::Alpha: case pid::Beta: case pid::Gamma: break; } } Вышеуказанный фрагмент прекрасно компилируется в msvc2012 (и работает), но не работает в clang-3.4 и g+…
01 янв '14 в 16:02