PDA

Просмотр полной версии : [Вопрос] Как можно узнать тип элемента у enum-а?



Seviel
14.04.2021, 20:06
Допустим я могу каким-то образом узнать что HOUSE_NAME является массивом?

enum HOUSE_INFO
{
HOUSE_NAME[24],
HOUSE_PRICE
}
new House[200][HOUSE_INFO];

DeimoS
14.04.2021, 20:26
https://pro-pawn.ru/showthread.php?17280-sizeof-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%B0-%D0%B2-enum

Seviel
15.04.2021, 15:36
Не совсем то что нужно, мне было интересно есть ли что-то вроде функции IsArray, но судя по тому что во всех функциях(format, settimerex и т.д.) с динамическим количеством аргументов, используются "маски"(ну типо "dfas") для определения типа, то это невозможно.

DeimoS
15.04.2021, 16:00
Не совсем то что нужно, мне было интересно есть ли что-то вроде функции IsArray, но судя по тому что во всех функциях(format, settimerex и т.д.) с динамическим количеством аргументов, используются "маски"(ну типо "dfas") для определения типа, то это невозможно.

При помощи того костыля с массивом и sizeof можно узнать ровно то, что ты хочешь: если sizeof вернёт значение больше единицы - член перечисления "является" массивом.

Но вообще, если что, enum - это, по сути, синтаксический сахар и на деле нет никаких переменных/массивов в перечислении. Все члены перечисления - это ячейки одной и той же меры массива, в котором перечисление используется.

nitecore
20.04.2021, 16:28
https://pro-pawn.ru/showthread.php?14725-%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80-tagof