This should probably be put inside SourceFile, as enum's themselves don't create a scope. (That would mean referring to them as SourceFile::OK SourceFile::NO_SUCH_SOURCE etc) Another option is to wrap them in a namespace or dummy-class.

Opinions?