摘要訊息 : C++ 14 引入了使用單引號作為長數字的分隔.

0. 前言

在日常的程式設計當中, 經常會使用到大數字. 我們在閱讀大數字的時候, 可能因為數字過長存在一定的閱讀困難.

N3781 《Single-Quotation-Mark as a Digit Separator》這個提案的目的就是使用單引號對數字進行分割, 提高數字的可讀性.

更新紀錄 :

  • 2022 年 4 月 16 日進行第一次更新和修正.

1. 提案內容

假設現在有一個十六進制數字 0x00007FECBA0AF970, 按照提案對其進行分割之後, 可以寫成 0x0000'7FEC'BA0A'F970.

除了十六進制, N3781 中提出了對十進制, 小數, 八進制甚至二進制使用單引號作為隔離者 :

  • 十進制 : 8888'8888;
  • 小數 : 9678'0092.1234'5678;
  • 八進制 : 0'1234'567;
  • 十六進制 : 0x0000'7FEC'BA0A'F970;
  • 二進制 : 0100'1100'0001'1111b.

C++ 14 中除了二進制之外, 其它都可以直接當作數字直接使用. 一個字面值數字中, 除了首尾以及十六進制的 xX 左右不可以出現單引號之外, 其它位置都可以使用單引號進行分割.

2. 評論

程式碼的可閱讀性一直都是程式設計師比較關注的方面, 為了提高程式碼的可閱讀性, 程式設計師們通常使用註解以及說明文檔的方式. 這篇提案通過引入數字隔離者提高了字面值數字的可讀性, 儘管可能被大家忽略, 但是對於 C++ 程式碼的可讀性提高有一定的幫助.