열거 형을 명시 적으로 지정하지 않고 경고를 없애려면 어떻게해야합니까? 표준을 준수하는 코드는 foo::bar::mUpload
(here 참조)과 비교하지만 명시적인 범위는 실제로 길어서 읽을 수 없습니다.표준 준수 방법 내 enum을 typedef
아마도 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();
}
무엇 열거 형을 수정하고 싶지 않으면? 나는 그것을 사용하지 않고 다른 곳에서 사용하고있다. –
그런 경우에 경고를 없애는 유일한 방법은'foo :: bar :: mUpload' 등의 이름을 지정하는 것입니다. typedef'typedef foo :: bar mode_t'를 만들 수 있습니다. 'foo :: bar'가 예상되는 곳 어디에서나'mode_t'를 사용하십시오 ... –