簡體   English   中英

如何在沒有得到編譯器警告的情況下使用C ++枚舉

[英]How to use C++ enums without getting a compiler warning

我需要傳達一個同一個枚舉傳遞給多個調用的信息。 所以我這樣做:

MiddleEarth::Creatures ally = MiddleEarth::Creatures::Elf;

myEnergy->Transfer(ally, 10);
myLives->Transfer(ally, 1);

這兩種Transfer方法都聲明如下:

Energy::Transfer(const Creatures& transferTo, (snip)

但是,對於名為ally的變量的聲明,我得到以下警告:

 warning C4482: nonstandard extension used: enum 'MiddleEarth::Creatures' used in qualified name

我究竟做錯了什么? 如何重寫我的代碼,使其不生成編譯器警告?

MSDN頁面上發出警告 ;

在類型內引用枚舉時,無需指定枚舉的名稱。

int i = S :: E :: a; // C4482
int j = S :: a; // 好

所以就你而言

MiddleEarth::Creatures::Elf

應該

MiddleEarth::Elf

您可能想要:

MiddleEarth::Creatures ally = MiddleEarth::Elf;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM