do you mean "observers_.find(event_name) != observers_.end() " is redundant? 
It is added because "observers_" will be updated in DetachObserverFromEvent, so we need the check to quit the loop when the event_name has already been removed from observers_.