---
title: "Hitta värden i enum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/74788-hitta-värden-i-enum"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Lime"
published: "2003-04-23T15:23:04.000Z"
updated: "2003-04-24T06:17:07.000Z"
replies: 3
views: 257
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/74788-hitta-värden-i-enum"
---

# Hitta värden i enum

## #1 — Lime, 2003-04-23T15:23Z

Tjing!

Jag har en enumeration som är ganska stor, 127 värden för att vara mer exakt. I denna finns det luckor, d.v.s. jag kan inte bara kolla om det värde jag får in är större eller mindre än max.

Min enum ser typ ut såhär:

```php
enum Cause{ REJECTED = 2,
NOT_SUPPORTED = 4,
NOT_IMPLEMENTED = 10,
UNKNOWN_ERROR = 31
}
```

men många fler.

Grejen är den att om jag får in värdet 3 så är detta ett godkänt värde, det går enligt ansi-standarden att skriva Cause ch = Cause(3), eftersom det ligger inom intervallet för enumen.

Vad som skall hända om jag får in värdet 3 är att den skall använda ett annat värde. I min kod så har jag ca 10 värden i intervallet 1-31 där alla icke specificerade värden skall får värdet 31, 10 värden i intervallet 32-72 där alla icke specificerade värden ska får värdet 72 o.s.v.

Hur tusan gör man detta på ett smidigt sätt?

Det går att göra med en gigantisk switch-case men då måste denna skrivas om så fort man lägger till ett värde i enumen... och det är inte bra.

Någon som har någon bra ide?

/Lime

Permalänk: https://www.webforum.nu/p/74788

## #2 — Sang-drax, 2003-04-23T15:59Z

Byt till något lämpligare än en enum.
Det finns inte så mycket 'smidiga' finesser med en enum, den håller värden helt enkelt.

Permalänk: https://www.webforum.nu/p/1023091

## #3 — PeW, 2003-04-23T19:51Z

En lite mer utvecklad tillståndsmaskin skulle kunna vara lösningen för dig. Finns olika sätt att implementera detta och kanske [denna](http://cpptips.hyperformix.com/cpptips/fsm3) eller informationen som finns [här](http://www.cuj.com/link/subject60.htm?topic=link) kan vara till hjälp?

Permalänk: https://www.webforum.nu/p/1023344

## #4 — Lime, 2003-04-24T06:17Z

Jag skulle gärna byta från enum till vector... om det inte vore så att designreglerna säger att det skall vara en enum...

Tack PeW för länkarna.

Permalänk: https://www.webforum.nu/p/1023551

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/74788-hitta-värden-i-enum
