Boost-源碼分析筆記1-remove-cv

喜歡這篇文章嗎?喜歡的話去看博主的置頂博客,即可依據分類找到此文章的原版得到更好的體驗,

圖片及代碼顯示的問題,筆者深感抱歉,想要更好的體驗去原博文即可。


title: Boost 源碼分析筆記1 - remove_cv
mathjax: true
date: 2020-03-17 14:57:43
categories: [c++筆記,Boost源碼分析筆記]
tags: [c++筆記,Boost源碼分析筆記]
keywords: [c++筆記,Boost源碼分析筆記]


先挑一個簡單的來分析

   remove_cv 這個模版類能夠幫我們去掉類型的const,他的實現很簡單,即使用模版元技術:

template <class T> struct remove_cv{ typedef T type; };
template <class T> struct remove_cv<T const>{ typedef T type;  };
template <class T> struct remove_cv<T volatile>{ typedef T type; };
template <class T> struct remove_cv<T const volatile>{ typedef T type; };

   這個代碼應該非常容易理解,remove_cv的模版是一個T,我們對他做模版偏特化,將const 和volatile分離,然後使用::value就可以得到沒有const、volatile的類型了,所以這個類也叫remove_cv。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章