C 11特性 使用者定義字面量

2021-10-05 09:07:58 字數 964 閱讀 3009

定義乙個距離的字面量,其單位有mm,m,km可以用如下**:

// 使用者自定義字面量

#include long double operator"" _mm(long double value)

long double operator"" _m(long double value)

long double operator"" _km(long double value)

int main()

輸出結果如下:

0.001

11000

注:帶有下劃線 「_」。是因為無「_」的是保留給未來c++標準用的。

使用者定義的字面量是有一定限制的,可以參考cppreference.

字面量運算子僅允許下列形參列表:

( const char * )	(1)	

( unsigned long long int ) (2)

( long double ) (3)

( char ) (4)

( wchar_t ) (5)

( char8_t ) (6) (c++20 起)

( char16_t ) (7)

( char32_t ) (8)

( const char * , std::size_t ) (9)

( const wchar_t * , std::size_t ) (10)

( const char8_t * , std::size_t ) (11) (c++20 起)

( const char16_t * , std::size_t ) (12)

( const char32_t * , std::size_t ) (13)

C 11新特性探索 一 原生字串字面量問題

原生字串字面量 是c 11標準引入的用於避免手動將字串換碼的新特性。按照標準要求,其內部的一切文字都將原封不動地 所見即所得地宣告為字串。現在的問題是,預處理指令理應先於一切其他語言特性進行,在一些編譯系統中 如 mingw 預處理階段甚至是由 cpp.exe cpreprocessor 這一單獨的...

c 11常用特性

目錄 一 atomic 1 std atomic flag 2 std atomic 二 std thread 三 std condition variable 四 右值引用 五 std function std bind 六 lambda表示式 atomic flag 一種簡單的原子布林型別,只支...

c 11 特性學習

auto 含義改變,現為自動型別推斷 register c 11之前為建議使用cpu暫存器儲存變數,現在幾乎沒有意義 include include include include include include using namespace std initial intsum initiali...