1
enum class test : bool { yes=true, no=false };
template< bool ok >
class A {
};
int main(){
A<test::yes> a;
}
爲什麼編譯失敗? (g ++ 4.7)由於C++ 11枚舉是強類型的,所以我們應該能夠使用bool enum作爲模板類型的bool參數?使用類型爲bool的強枚舉(C++ 11)對於模板布爾參數失敗,爲什麼?
你需要一個顯式的強類型的枚舉轉化爲自己的[基礎類型](http://en.cppreference.com/w/cpp/types/underlying_type) –
這正是強類型意味着什麼:'test :: yes'的類型是'test',而不是'bool ',強類型枚舉的全部意義在於它們之間不存在隱式轉換。 – hvd