strongly-typed-enum

    3熱度

    2回答

    //c++03 enum Something { S1 = 0, S2, SCOUNT }; int arr[SCOUNT]; //c++11 enum class Something { S1 = 0, S2, SCOUNT }; int arr[(int) Something::SCOUNT]; 如何在這種情況

    5熱度

    1回答

    根據GCC C++11 support status website,強類型枚舉可用於g++4.4及更高版本。 然而下面不與g++4.4編譯: enum class Foo { value_1, value_2 }; int main() { Foo a = Foo::value_1; Foo b = Foo::value_2; cons

    99熱度

    10回答

    #include <iostream> struct a { enum LOCAL_A { A1, A2 }; }; enum class b { B1, B2 }; int foo(int input) { return input; } int main(void) { std

    1熱度

    2回答

    請考慮以下代碼。我假設通過強類型枚舉的類型指定我可以使用它傳遞給相同類型的函數和模板,因爲指定的基礎類型是相同的;儘管編譯器會抱怨缺少類型轉換。在下面的代碼中刪除關鍵字class和枚舉Test::TOTAL_ITEMS返回TOTAL_ITEMS的說明符將工作。我知道他們不希望對強類型枚舉進行任何類型轉換,但是當基礎類型與預期會被函數或模板接收的類型相同時,我希望編譯器不會抱怨這一點,也不會強制一個