size_t is unsigned and thus can never be negative
the default: case in switch() constructs always have to be last