程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> function object研究之list_av_N

function object研究之list_av_N

編輯:C++入門知識

已經走了好遠好遠,現在開始回到我們的目標list_av_N模板:

[cpp] 
template<class A1> struct list_av_1 

    typedef typename add_value<A1>::type B1; 
    typedef list1<B1> type; 
}; 
 
template<class A1, class A2> struct list_av_2 

    typedef typename add_value<A1>::type B1; 
    typedef typename add_value<A2>::type B2; 
    typedef list2<B1, B2> type; 
}; 
 因此知道當A1是boost::arg<1>的時候,B1也就是boost::arg<1>

list1<B1> 就是一個類型,通過繼承storage1<B1>來獲得擁有a1_()靜態成員函數的能力。

 

list_av_2依此類推,比list_av_1多擁有B2類型(也就是boost::arg<2>)和 a2_()靜態成員函數。

獲得這些能力都是在編譯期。這種實現手法比Moder C++ Design寫法簡單,好處是容易理解,壞處是代碼寫的很多很多。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved