I dislike "fractal" names repeating things and try to avoid it. For your case, I'd try something like namespace "Foo" and nested class "Type". Maybe some other name would be more appropriate, but that depends on your actual use case. Here's a use case that I find myself repeating over and over:
namespace status {
enum type {
invalid,
okay,
on_fire
};
// debug output helper
char const* to_string(type t);
}
The enumeration type is called status::type
, which can take values like status::okay
. Pretty readable IMHO.