Как мы можем написать функцию для замены двух переменных перечисления? - PullRequest
0 голосов
/ 09 января 2012

Как мы можем написать функцию, которая меняет переменные перечисления?

Кроме того, эти переменные являются стандартными, и работа с ними не имеет значения в проекте? Как компилятор C ++ использует их и помещает в оперативную память?

Ответы [ 3 ]

6 голосов
/ 09 января 2012

Использование std::swap:

enum Foo {
    CAT,
    DOG,
    ELEPHANT
};

Foo a = CAT;
Foo b = ELEPHANT;

std::swap(a, b);

std::cout << (a == ELEPHANT) << "\n";

enum совершенно стандартно; они эквивалентны целочисленным типам.

0 голосов
/ 09 января 2012

Точно, просто используйте std::swap(....).

0 голосов
/ 09 января 2012

Вам не нужно писать функцию подкачки, std::swap работает из коробки.

enum - это стандартный C ++.enum значения представлены в памяти как целочисленный тип, по умолчанию как int.Вы можете изменить это представление (в C ++ 11), например,

enum Foo : short { A, B, C };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...