The Machine Objects class library (in short Macho) allows the creation of state machines based on the "State" design pattern in straight C++. Created by Eduard Hiti, Updated by aeleos to support any number of template parameters using parameter packs.