c++11的新特性强类型枚举

最近遇到一个新的枚举写法,enum class ,一查才晓得是c++11的新特性强类型枚举,强在哪里呢?
我们来定义两个枚举类型

enum  Color  {black,orange,white};
 enum Fruits {orange,apple};//error:重定义

这是因为enum的成员名字全局可见。
强类型枚举写法这样写:

enum class Color  {black,orange,white};
 enum class Fruits {orange,apple};

既然现在允许共同名字的enum 成员了,使用时就要在枚举值前加枚举类型,例如:

 Color c1=orange;  //error :使用未定义orange
Color c2=Color::orange;//正确

旧的写法是支持隐士类型转换的,我们可以直接给int型的变量赋值;
强类型枚举不支持;

enum  Fruits {orange,apple};
 int c1=apple;  

enum class Color  {black,orange,white};
int c1=Color::black;  // error: C2440: “初始化”: 无法从“testEnum::Color”转换为“int”