[计算机科学经

Declaration c c scope definition deduction template

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: T3, typename T4, typename T5> class Quintuple; // 錯誤:T1 不能擁有預設值,因為 T2 沒有預設值 //譯註:VC6 不支援㆖述的「組合式」引數預設方式。VC7.1/ICL7.1/g++ 3.2 沒有問題。 此外我們也不能重複指定 default template arguments: template<typename T = void> class Value; template<typename T = void> // ERROR:預設引數被重複定義了 class Value; 8.3 Template Arguments(模板引數) 所謂 templates arguments 是當編譯器具現化㆒個 template 時 用來替換 template parameters 的值。 , 編譯器以數種不同的機制來決定以何值替換 template parameters: explicit template arguments(明白指定之模板引數):可在 template 名稱之後跟著㆒個或多個 明確的 template arguments,並以角括號括起。這個完整名稱被稱為 template-id(p.90)。 injected class name(內植式類別名稱):在帶有參數 P1,P2…的 class template X 作用域㆗, template X 的名稱與 template-id X<P1, P2,...> 等價。細節請見 9.2.3 節, p.126。 default template arguments:如果存在可用的 default template arguments,我們便可在 class templates 具現體㆗省略不寫 explicit template arguments。然而即使每㆒個參數都有預設值, 你也必須把開閉兩個角括號寫㆖(即使括號內什麼都沒有)。 argument deduction(引數推導) :編譯器可根據 function call arguments 推導出 function template...
View Full Document

This note was uploaded on 08/25/2012 for the course EECS 101 taught by Professor Wre during the Fall '12 term at Beacon FL.

Ask a homework question - tutors are online