better-enums/example/3-iterate.cc
Anton Bachin e1e237a4ea Renamed top-level macro ENUM to BETTER_ENUM.
To reduce name clashes.

Fixes #11.
2015-10-04 11:03:08 -05:00

45 lines
1.0 KiB
C++

// This file was generated automatically.
// Iteration
//
// Better Enums makes it easy to iterate over the values you have declared. For
// example, this:
#include <iostream>
#include <enum.h>
BETTER_ENUM(Channel, int, Red, Green = 2, Blue)
int main()
{
for (size_t index = 0; index < Channel::_size(); ++index) {
Channel channel = Channel::_values()[index];
std::cout << channel._to_integral() << " ";
}
std::cout << std::endl;
// will print "0 2 3". And this:
for (size_t index = 0; index < Channel::_size(); ++index) {
const char *name = Channel::_names()[index];
std::cout << name << " ";
}
std::cout << std::endl;
// will print "Red Green Blue".
// If you are using C++11, you can have much nicer syntax:
//
// for (Channel channel : Channel::_values())
// std::cout << channel._to_integral() << " ";
// std::cout << std::endl;
//
// for (const char *name : Channel::_names())
// std::cout << name << " ";
// std::cout << std::endl;
return 0;
}