c++11 vs c++ - enums differences -


//c++03 enum {     s1 = 0,     s2,     scount }; int arr[scount];  //c++11 enum class {     s1 = 0,     s2,     scount }; int arr[(int) something::scount]; 

how can use enums in case without casting count of enum int?

how can use enums in case without casting count of enum int?*

you can't... can remove class enum class

the class keyword means can't implicitly convert between enum , int removing class keyword means enum work in same way in previous versions of c++. won't need cast, loose safety of strongly typed enums allowing implicit casts integral values.

//c++11 enum class {     s1 = 0,     s2,     scount }; int arr[scount]; // errror  //c++11 enum {     s1 = 0,     s2,     scount }; int arr[scount]; // ok 

you can read more strongly typed enums here


other option cast it, doing. should avoid old c-style cast , use static_cast<> instead has better type safety , more explicit.

//c++11 enum class {     s1 = 0,     s2,     scount }; int arr[static_cast< size_t > ( scount ) ]; // ok 

Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -