286 votes

Comment lancer int à enum en C++ ?

Comment puis-je lancer un int à un enum en C++ ?

Par exemple :

enum Test
{
    A, B
};

int a = 1;

Comment convertir a en Test::A ?

333voto

Andrew Points 14301
int i = 1;
Test val = static_cast<Test>(i);

83voto

bames53 Points 38303
Test e = static_cast<Test>(1);

31voto

user1515687 Points 79

Votre code

enum Test
{
    A, B
}

int a = 1;

Solution

Test castEnum = static_cast<Test>(a);

1voto

kosolapyj Points 91

Test castEnum = static_cast<Test>(a-1); enverra a A. Si vous ne voulez pas sous-structurer 1, vous pouvez redéfinir le enum :

enum Test
{
    A:1, B
};

Dans ce cas, Test castEnum = static_cast<Test>(a); pourrait être utilisé pour lancer a à A.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X