曹大有 盧中寧
摘要類復合是通過模板元編程技術在C++的編譯期由指定的類型序列和細粒度的template parameters來創(chuàng)建類結構的編程技術,它的基本構想是以類型序列作為代碼生成機制,驅動編譯器在編譯期自動生成代碼.在對類型成員的訪問方法上,通過顯式的類型成員限定來訪問類型成員value的方法,容易產生歧義.本文通過索引確定類型成員,從而進一步訪問類型成員value的方法,解決了模棱兩可(歧義)的現(xiàn)象.
關鍵詞類復合;函數(shù)實參推導;基類鏈
中圖分類號TP311文獻標識碼A文章編號10002537(2014)05009005
模板元編程(Metaprogramming)指的是高階編程,它運行在編譯期.作為一種高階C++編程技術,C++強大的模板機制賦予了模板在編譯期的運算能力,模板元編程突出了編譯期在整個程序構建和運行過程中的地位,努力將計算從運行期提前至編譯期,它不但有效地防止程序錯誤被傳播到運行期,而且能夠實現(xiàn)以靜態(tài)代碼控制動態(tài)代碼的目標,使計算盡可能完成于編譯期的同時也提高了最終程序的運行性能.
3結束語
模板元編程是C++中一種高級編程技術,它處于編譯期,而類復合可以驅動C++的編譯器在編譯期自動生成所需的代碼,同時也將類型計算盡量提前至編譯期,減少了運行期出錯的機率,提高了最終程序運行性能.本文通過以索引的方式來訪問類復合對象中的成員值,解決了歧義現(xiàn)象,解決的類復合成員中的value值的訪問問題.
參考文獻:
[1]DAVID A.C++模板元編程[M].榮耀,譯.北京:機械工業(yè)出版社,2010:153155.
[2]ANDREI A.C++設計新思維[M].侯捷,於春景,譯.武漢:華中科技大學出版社,2003:6474.
[3]DAVID V, NICOLAI M J. C++ template中文版[M].陳偉柱,譯.北京:人民郵電出版社,2004.
[4]HERBERT S.C++完全參考手冊[M].4版.北京:清華大學出版社, 2004.
[5]王曉宇,錢紅兵.基于UML類圖和順序圖的C++代碼自動生成方法的研究[J].計算機應用與軟件, 2013,30(1):190195.
[6]周毅,顧進廣,張曉龍,等.一種面向復合屬性的自適應對象模型[J].計算機應用與軟件, 2008,25(11):137139.
[7]徐靜雯,周繼恩,施躍躍,等.軟件密集型系統(tǒng)的故障診斷技術研究[J].計算機應用與軟件, 2012,29(2):175178.
[8]黃山,陳昱松,王建偉,等.一種基于UML與SDL融合建模的組件系統(tǒng)測試方法[J].計算機應用與軟件, 2011,28(7):175177,182.
[9]唐峰,許第洪.SolidWorks與Pro/Engineer之間圖形數(shù)據(jù)交換方式的研究[J].湖南師范大學自然科學學報, 2011,34(1):3742.
[10]劉震,繆力.基于動態(tài)調用圖的Java程序修改影響分析技術[J].湖南師范大學自然科學學報, 2011,34(6):2630.
[11]PLAUGER P J, STEPANOV A A, LEE M, et al.C++ STL中文版[M].王昕,譯.北京:中國電力出版社, 2002.
[12]BLANCHETTE J, SUMMERFIELD M. C++ GUI Qt 4編程[M].閆鋒欣,曾泉人,張志強,譯.北京:電子工業(yè)出版社, 2008.
[13]葉至軍.C++ STL開發(fā)技術導引[M].北京:人民郵電出版社, 2007.
[14]MATTHEW H A. 泛型編程與STL[M].侯捷,譯.北京:中國電力出版社, 2003.
[15]ANDREW K, BARBARA M. C++沉思錄[M].黃曉春,譯.北京:人民郵電出版社, 2008.
(編輯胡文杰)
摘要類復合是通過模板元編程技術在C++的編譯期由指定的類型序列和細粒度的template parameters來創(chuàng)建類結構的編程技術,它的基本構想是以類型序列作為代碼生成機制,驅動編譯器在編譯期自動生成代碼.在對類型成員的訪問方法上,通過顯式的類型成員限定來訪問類型成員value的方法,容易產生歧義.本文通過索引確定類型成員,從而進一步訪問類型成員value的方法,解決了模棱兩可(歧義)的現(xiàn)象.
關鍵詞類復合;函數(shù)實參推導;基類鏈
中圖分類號TP311文獻標識碼A文章編號10002537(2014)05009005
模板元編程(Metaprogramming)指的是高階編程,它運行在編譯期.作為一種高階C++編程技術,C++強大的模板機制賦予了模板在編譯期的運算能力,模板元編程突出了編譯期在整個程序構建和運行過程中的地位,努力將計算從運行期提前至編譯期,它不但有效地防止程序錯誤被傳播到運行期,而且能夠實現(xiàn)以靜態(tài)代碼控制動態(tài)代碼的目標,使計算盡可能完成于編譯期的同時也提高了最終程序的運行性能.
3結束語
模板元編程是C++中一種高級編程技術,它處于編譯期,而類復合可以驅動C++的編譯器在編譯期自動生成所需的代碼,同時也將類型計算盡量提前至編譯期,減少了運行期出錯的機率,提高了最終程序運行性能.本文通過以索引的方式來訪問類復合對象中的成員值,解決了歧義現(xiàn)象,解決的類復合成員中的value值的訪問問題.
參考文獻:
[1]DAVID A.C++模板元編程[M].榮耀,譯.北京:機械工業(yè)出版社,2010:153155.
[2]ANDREI A.C++設計新思維[M].侯捷,於春景,譯.武漢:華中科技大學出版社,2003:6474.
[3]DAVID V, NICOLAI M J. C++ template中文版[M].陳偉柱,譯.北京:人民郵電出版社,2004.
[4]HERBERT S.C++完全參考手冊[M].4版.北京:清華大學出版社, 2004.
[5]王曉宇,錢紅兵.基于UML類圖和順序圖的C++代碼自動生成方法的研究[J].計算機應用與軟件, 2013,30(1):190195.
[6]周毅,顧進廣,張曉龍,等.一種面向復合屬性的自適應對象模型[J].計算機應用與軟件, 2008,25(11):137139.
[7]徐靜雯,周繼恩,施躍躍,等.軟件密集型系統(tǒng)的故障診斷技術研究[J].計算機應用與軟件, 2012,29(2):175178.
[8]黃山,陳昱松,王建偉,等.一種基于UML與SDL融合建模的組件系統(tǒng)測試方法[J].計算機應用與軟件, 2011,28(7):175177,182.
[9]唐峰,許第洪.SolidWorks與Pro/Engineer之間圖形數(shù)據(jù)交換方式的研究[J].湖南師范大學自然科學學報, 2011,34(1):3742.
[10]劉震,繆力.基于動態(tài)調用圖的Java程序修改影響分析技術[J].湖南師范大學自然科學學報, 2011,34(6):2630.
[11]PLAUGER P J, STEPANOV A A, LEE M, et al.C++ STL中文版[M].王昕,譯.北京:中國電力出版社, 2002.
[12]BLANCHETTE J, SUMMERFIELD M. C++ GUI Qt 4編程[M].閆鋒欣,曾泉人,張志強,譯.北京:電子工業(yè)出版社, 2008.
[13]葉至軍.C++ STL開發(fā)技術導引[M].北京:人民郵電出版社, 2007.
[14]MATTHEW H A. 泛型編程與STL[M].侯捷,譯.北京:中國電力出版社, 2003.
[15]ANDREW K, BARBARA M. C++沉思錄[M].黃曉春,譯.北京:人民郵電出版社, 2008.
(編輯胡文杰)
摘要類復合是通過模板元編程技術在C++的編譯期由指定的類型序列和細粒度的template parameters來創(chuàng)建類結構的編程技術,它的基本構想是以類型序列作為代碼生成機制,驅動編譯器在編譯期自動生成代碼.在對類型成員的訪問方法上,通過顯式的類型成員限定來訪問類型成員value的方法,容易產生歧義.本文通過索引確定類型成員,從而進一步訪問類型成員value的方法,解決了模棱兩可(歧義)的現(xiàn)象.
關鍵詞類復合;函數(shù)實參推導;基類鏈
中圖分類號TP311文獻標識碼A文章編號10002537(2014)05009005
模板元編程(Metaprogramming)指的是高階編程,它運行在編譯期.作為一種高階C++編程技術,C++強大的模板機制賦予了模板在編譯期的運算能力,模板元編程突出了編譯期在整個程序構建和運行過程中的地位,努力將計算從運行期提前至編譯期,它不但有效地防止程序錯誤被傳播到運行期,而且能夠實現(xiàn)以靜態(tài)代碼控制動態(tài)代碼的目標,使計算盡可能完成于編譯期的同時也提高了最終程序的運行性能.
3結束語
模板元編程是C++中一種高級編程技術,它處于編譯期,而類復合可以驅動C++的編譯器在編譯期自動生成所需的代碼,同時也將類型計算盡量提前至編譯期,減少了運行期出錯的機率,提高了最終程序運行性能.本文通過以索引的方式來訪問類復合對象中的成員值,解決了歧義現(xiàn)象,解決的類復合成員中的value值的訪問問題.
參考文獻:
[1]DAVID A.C++模板元編程[M].榮耀,譯.北京:機械工業(yè)出版社,2010:153155.
[2]ANDREI A.C++設計新思維[M].侯捷,於春景,譯.武漢:華中科技大學出版社,2003:6474.
[3]DAVID V, NICOLAI M J. C++ template中文版[M].陳偉柱,譯.北京:人民郵電出版社,2004.
[4]HERBERT S.C++完全參考手冊[M].4版.北京:清華大學出版社, 2004.
[5]王曉宇,錢紅兵.基于UML類圖和順序圖的C++代碼自動生成方法的研究[J].計算機應用與軟件, 2013,30(1):190195.
[6]周毅,顧進廣,張曉龍,等.一種面向復合屬性的自適應對象模型[J].計算機應用與軟件, 2008,25(11):137139.
[7]徐靜雯,周繼恩,施躍躍,等.軟件密集型系統(tǒng)的故障診斷技術研究[J].計算機應用與軟件, 2012,29(2):175178.
[8]黃山,陳昱松,王建偉,等.一種基于UML與SDL融合建模的組件系統(tǒng)測試方法[J].計算機應用與軟件, 2011,28(7):175177,182.
[9]唐峰,許第洪.SolidWorks與Pro/Engineer之間圖形數(shù)據(jù)交換方式的研究[J].湖南師范大學自然科學學報, 2011,34(1):3742.
[10]劉震,繆力.基于動態(tài)調用圖的Java程序修改影響分析技術[J].湖南師范大學自然科學學報, 2011,34(6):2630.
[11]PLAUGER P J, STEPANOV A A, LEE M, et al.C++ STL中文版[M].王昕,譯.北京:中國電力出版社, 2002.
[12]BLANCHETTE J, SUMMERFIELD M. C++ GUI Qt 4編程[M].閆鋒欣,曾泉人,張志強,譯.北京:電子工業(yè)出版社, 2008.
[13]葉至軍.C++ STL開發(fā)技術導引[M].北京:人民郵電出版社, 2007.
[14]MATTHEW H A. 泛型編程與STL[M].侯捷,譯.北京:中國電力出版社, 2003.
[15]ANDREW K, BARBARA M. C++沉思錄[M].黃曉春,譯.北京:人民郵電出版社, 2008.
(編輯胡文杰)