- map<unsigned, int>::iterator i = turnouts.find(addr);
- if(i==turnouts.end())
- throw KeyError("Turnout is not in this route");
- if(i->second>=0 && path!=static_cast<unsigned>(i->second))
+ int &state = get_item(turnouts, addr);
+ if(state>=0 && path!=static_cast<unsigned>(state))