C++ 14按照3'141'592'653'589
的說法將數字分隔符的概念引入文字中。現在這是一個偉大的功能的可讀代碼,但我想知道它是否允許引號0x/0b
類型文字的數字部分。在我看來,那:在十六進制或二進制數中的數字之前是否允許數字分隔符?
unsigned int topThreeBits = 0b'1110'0000;
unsigned int hexNum = 0x'dead'beef;
比一個沒有領先分隔更具可讀性:
unsigned int topThreeBits = 0b1110'0000;
unsigned int hexNum = 0xdead'beef;
,因爲它清楚地說明了從數字的基礎。
因爲我還沒有C++ 14編譯器,所以我需要以某種方式確認它是否允許這樣做。
我知道它對於像'123'456
這樣的未加前綴的數字沒有意義,特別是因爲解析器不知道它是否意圖成爲char
變量或數字文字。
但是,對於前綴的文字,我看不出有什麼混淆的標記是什麼意思是在第一個'
到達的點 - 0x/0b
已經口授它將是一個數字文字。
我只是想知道同樣的。正如答案所說,它不能完成(還沒有?)。因此,要獲得對稱數字/半字節/等,我們必須解決下一個最好的事情:'0b0'1110'0000'([hmm](https://sites.google.com/site/ohmusicstudent/_/rsrc/) 1315398151002/band-instruments/oboe/oboe-history/oboe2.gif))和'0x0'dead'beef'([omg](http://londonpride.com/wp-content/uploads/2013/09/Oxo__Beef________4c23b399c6687)。 jpg)) –
@underscore_d,領先的'0'實際上是一個絕妙的主意,而不是我想到的。前導零對值沒有影響,它仍然允許視覺上不同的「實數部分」。 – paxdiablo
是的,簡單但有效,有時候這樣的事情很容易錯過:-) –