В свитче даже очень длинное имя - не проблема, т.к. оно оформлено одной строкой. Но вот напр с 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;
...
};