用循環值實現枚舉的最佳方法是什麼,以及從一個值過渡到另一個值的適當函數是什麼?循環枚舉值的實現
例如:
enum class Direction {
NORTH, EAST, SOUTH, WEST
};
constexpr Direction left(Direction d) {
return (Direction)((std::underlying_type<Directions>::type(d) - 1) % 4);
}
不過,我覺得這是很容易出錯,一般無法讀取。有沒有更適當的方法來處理這種類型的枚舉?
有四拼出來明確案例切換聲明?這將是最可讀的選項。 – RichieHindle 2013-04-20 20:38:50
如果有更多的LOTS值,該怎麼辦? – Svalorzen 2013-04-20 20:39:41
如果將'left'改爲'nextCounterclockwise'(或簡稱爲'nextCCW'),對於我來說更具可讀性:-D – deepmax 2013-04-20 20:50:51