日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

C++的decltype()的介绍

發布時間:2024/9/21 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++的decltype()的介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

c++里在獲取一個表達式的數據類型的時候。就是使用decltype()來獲取。下面介紹下它的一些特性:

1.延遲性

decltype(f()) sum = x;

sum 的數據類型是函數f()的返回類型。但是,這得需要f()執行結束(ps:與auto不同,這里不實際計算結果)。

decltype 處理頂層const和引用的方式與auto有些不同, auto會忽略,但是decltype()不會。例如:

const int ci = 0, &cj = ci;

deltype(ci) x = 0; ---------x的數據類型是const int

decltype(cj) y = x; -------------y 的數據類型是const int&. y引用了x。

2.decltype()和引用的組合。

-------------如果變量不是一個普通的表達式,那么decltype()返回的是對應結果的數據類型。

-------------如果表達式里有解引用符,那么decltype()的結果將是引用類型。

-------------如果表達式在一層或多層括號()內,那么decltype()的結果將是引用類型。

例如:

int i = 10, *p = &i, &r = i;

decltype(r + 0) b;-----------加法的結果是int, b是int 類型。

decltype(*p) c = 20;--------c是int&。因為表達式里有解引用符。

decltype((i)) d = 10;---------d的數據類型是整型引用int&。


ps: 和auto對比?

int a = 3;

auto c1 = a; c1的數據類型是int

decltype(a) c2 = a; c2的數據類型是int

decltype((a)) c3 = a; c3的數據類型是int&


const int d = 5;

auto f1 = d; f1的數據類型是int

decltype(d) f2 = d; f2的數據類型是const int


總結

以上是生活随笔為你收集整理的C++的decltype()的介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。