最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++11中std::declval的實現(xiàn)機制淺析

 更新時間:2017年07月02日 15:14:53   作者:呃仙兒  
這篇文章主要給大家介紹了關于C++11中std::declval實現(xiàn)機制的相關資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

本文主要給大家介紹了關于C++11中std::declval實現(xiàn)機制的相關內(nèi)容,分享出來供大家參考學習,下面來一起看看詳細的介紹:

在vs2013中,declval定義如下

template <_Ty>
 typenamea dd_rvalue_reference<_Ty>::type declval() _noexcept;

其中,add_rvalue_reference為一個traits,定義為

template <_Ty>
struct add_rvalue_reference
{
 typedef _Ty&& type;
}

可見,declval被定義為一個函數(shù),并且只有申明,沒有實現(xiàn)(在gcc 版本中似乎有實現(xiàn),但是也不能在運行時調(diào)用——通過靜態(tài)斷言實現(xiàn))。那么,問題來了,為什么這樣定義呢,為什么不直接使用模板參數(shù)指定的,揣測原因如下:

通過函數(shù)返回值,實際上是等同于實例化了這個類型的一個對像,進而可以用這個對像調(diào)用成員方法,成員變量。這個方法最妙的地方在于不論類型的構造如何定義甚至有無構造都能獲得這個類型的一個對像的引用實例。
其實,也有其它方法可以得到類似的效果。

class Klass
{
 public:
  int m_a;
 //parameter defined
 //member function
}

假如有上的一個類,可以通過下面的方法引用到成員變量m_a:

((Klass*)0)->m_a;

這也是在c語言中獲取結構體成員的地址偏移量的常用技巧,但是有魔鬼數(shù)字和類型強轉,不如declval來得優(yōu)雅。

當然這一切都只能是在編譯期蹦噠。declval常和c++11新引入的decltype配合。

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • 概率的問題:使用遞歸與多次試驗模擬的分析

    概率的問題:使用遞歸與多次試驗模擬的分析

    以下對概率的問題:使用了遞歸和多次試驗模擬。需要的朋友參考下
    2013-05-05
  • 一篇文章徹底搞懂C++常見容器

    一篇文章徹底搞懂C++常見容器

    容器就是一些特定類型對象的集合,容器可以分為順序容器和關聯(lián)容器,下面這篇文章主要給大家介紹了關于C++常見容器的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • c++元編程模板函數(shù)重載匹配規(guī)則示例詳解

    c++元編程模板函數(shù)重載匹配規(guī)則示例詳解

    這篇文章主要為大家介紹了c++元編程模板函數(shù)重載匹配規(guī)則示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • C語言實現(xiàn)輸入兩個數(shù)字將其按從小到大輸出的方法

    C語言實現(xiàn)輸入兩個數(shù)字將其按從小到大輸出的方法

    這篇文章主要介紹了C語言實現(xiàn)輸入兩個數(shù)字將其按從小到大輸出的方法,本文通過代碼講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 簡明的C++函數(shù)指針學習教程

    簡明的C++函數(shù)指針學習教程

    這篇文章主要介紹了C++函數(shù)指針的學習教程,講到了函數(shù)指針的定義及把指針作為函數(shù)參數(shù)進行傳遞的用法,需要的朋友可以參考下
    2016-04-04
  • C++中的并行與并發(fā)基礎與使用詳解

    C++中的并行與并發(fā)基礎與使用詳解

    對于多線程來說,這兩個概念有很大部分是重疊的。對于很多人來說,它們的意思沒有什么區(qū)別。其區(qū)別主要在于關注點和意圖方面(差距甚微)。這兩個詞都是用來對硬件在同時執(zhí)行多個任務的方式進行描述的術語,不過并行更加注重性能
    2023-02-02
  • C++返回值是類名和返回值是引用的區(qū)別及說明

    C++返回值是類名和返回值是引用的區(qū)別及說明

    這篇文章主要介紹了C++返回值是類名和返回值是引用的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • wxWidgets自定義按鈕的方法

    wxWidgets自定義按鈕的方法

    這篇文章主要為大家詳細介紹了wxWidgets自定義按鈕的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C語言聯(lián)合體類型的實現(xiàn)

    C語言聯(lián)合體類型的實現(xiàn)

    聯(lián)合體也是一種構造數(shù)據(jù)類型,和結構體類型一樣,它也是由各種不同類型的數(shù)據(jù)組成,本文主要介紹了C語言聯(lián)合體類型的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • C++實現(xiàn)頁面的緩沖區(qū)管理器

    C++實現(xiàn)頁面的緩沖區(qū)管理器

    這篇文章主要介紹了C++實現(xiàn)頁面的緩沖區(qū)管理器,文章圍繞主題展開詳細的內(nèi)容介紹具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08

最新評論

时尚| 万年县| 黎平县| 招远市| 红桥区| 敖汉旗| 闵行区| 肥西县| 南江县| 武平县| 拜城县| 霍州市| 屯门区| 彭阳县| 博客| 宜阳县| 渑池县| 怀安县| 邮箱| 大渡口区| 罗江县| 江源县| 上杭县| 通城县| 宝山区| 荣昌县| 威远县| 达州市| 宁武县| 和龙市| 汝南县| 容城县| 高州市| 游戏| 扬州市| 贵德县| 南投县| 青岛市| 新干县| 松原市| 临洮县|