Как я могу избавиться от предупреждения, без явного определения области действия enum?Соответствующий стандартам код должен сравниваться с foo::bar::mUpload
(см. здесь ), но явные области видимости очень длинные и делают эту чертову вещь нечитаемой.
возможно, есть другой способ, который нене используете typedef?я не хочу изменять перечисление - я не писал его и он используется в другом месте.
warning C4482: nonstandard extension used: enum 'foo::bar::baz' used in qualified name
namespace foo {
class bar {
enum baz {mUpload = 0, mDownload};
}
}
typedef foo::bar::baz mode_t;
mode_t mode = getMode();
if (mode == mode_t::mUpload) //C4482
{
return uploadthingy();
}
else
{
assert(mode == mode_t::mDownload); //C4482
return downloadthingy();
}