C 0x11中列舉的問題

2021-07-28 07:27:07 字數 350 閱讀 7806

c++ 11中新增的強型別列舉,確實可以解決此前版本中列舉的作用域問題,但是隨之也帶來一些其他問題。

強型別列舉的宣告方式為:

enum class enumname

value1,

value2

在編碼中,我以前比較習慣對列舉值應用位運算,比如&和|,但是對於c++ 11中的強型別列舉,則無法再應用位運算。

比如:enumname en;

enumname res = en & enumname::value1;//這句**將無法編譯通過,因此無法使用這種位操作來獲取或設定列舉值。

在c++11之前的弱型別列舉以及c#中的列舉,都是可以進行位運算的,感覺更方便一些。

g 編C 11 C 0x遇到的問題

在看 cplusplus concurrency in action practical multithreading 當遇到第乙個樣品 include includevoid hello int main 我安裝了g 4.8版本號編譯器,支援c 11。使用命令列g 4.8 std c 11 lpt...

PyTips 0x17 Python 中的列舉型別

列舉型別可以看作是一種標籤或是一系列常量的集合,通常用於表示某些特定的有限集合,例如星期 月份 狀態等。python 的原生型別 built in types 裡並沒有專門的列舉型別,但是我們可以通過很多方法來實現它,例如字典 類等 weekday class color red 0 green 1...

C 中 x與0x的區別

首先這兩個均表示16進製制,但是用法有所不同。x主要是用於字元的表示 如char ch xa 那麼ch這個字元所代表的是什麼呢?正如上面所說的 x代表的是16進製制,16進製制中的a在十進位制中代表10,那麼ch這個數就代表著序號為10的ascii碼所代表的字元,即 n換行符。0x雖然也代表十六進製...