循環値を列挙し、値から別の値に変換する適切な関数を実装する最良の方法は何でしょうか?例えば円列挙値の実装
:
enum class Direction {
NORTH, EAST, SOUTH, WEST
};
constexpr Direction left(Direction d) {
return (Direction)((std::underlying_type<Directions>::type(d) - 1) % 4);
}
はしかし、私はこのエラーが発生しやすく、一般的に読めないと感じています。このタイプの列挙を扱うより適切な方法がありますか?
四に、明示的にそれをスペルをcase switch文?それは最も読みやすいオプションです。 – RichieHindle
LOTSの値が増えたらどうなりますか? – Svalorzen
'left'を' nextCounterclockwise'(あるいは 'nextCCW')に変更すると読みやすくなります:-D – deepmax