Вам не нужно писать функцию подкачки, std::swap
работает из коробки.
enum
- это стандартный C ++.enum
значения представлены в памяти как целочисленный тип, по умолчанию как int
.Вы можете изменить это представление (в C ++ 11), например,
enum Foo : short { A, B, C };