В свитче даже очень длинное имя - не проблема, т.к. оно оформлено одной строкой. Но вот напр с if'ами
C++ (Qt)
if (data[i].HasBitFlag(MySomeClass::FirstValue) && ...
Чижеловато читается/пишется
Это дело вкуса). Но уж лучше так, чем 
C++ (Qt)
if (data[i].HasBitFlag(FirstValueMySomeClass) && ...
Да и вариант
C++ (Qt)
using namespace MySomeNamespace;
using namespace MyOtherNamespace;
...
if (data[i].HasBitFlag(FirstValue) && ...
краткий, но не информативный, к тому же может ненароком перестать собираться, если в оба namespace поместить FirstValue.
А namespace не использовал, так как раньше для них нельзя было переопределение типов использовать, и они не могут быть частью класса или структуры, и "индусы" делали так):
C++ (Qt)
class Q_CORE_EXPORT QSysInfo {
...
    enum Endian {
        BigEndian,
        LittleEndian
    };
...
};
 
...
 
class Q_CORE_EXPORT QDataStream
{
...
    enum ByteOrder {
        BigEndian = QSysInfo::BigEndian,
        LittleEndian = QSysInfo::LittleEndian
    };
...
};
 
вместо, например
C++ (Qt)
class Q_CORE_EXPORT QSysInfo {
...
    struct Endian {
        enum Enum{
            BigEndian,
            LittleEndian
        };
    };
...
};
 
...
 
class Q_CORE_EXPORT QDataStream
{
...
    typedef QSysInfo::Endian ByteOrder;
...
};