一路向北
追逐夢(mèng)想,永不停步......
C++博客
首頁(yè)
新隨筆
聯(lián)系
聚合
管理
隨筆-4 評(píng)論-40 文章-117 trackbacks-0
關(guān)于 return void()
大家都知道,return 用來(lái)在函數(shù)里返回,有兩種形式:一是 直接用return; 或者省略,表示無(wú)返回值。二是 return expression; 返回一個(gè)值。
今天測(cè)試時(shí)我發(fā)現(xiàn)兩種以前沒(méi)注意的方式,也是正確的。
<1>.
void
FuncA()
{
return
void
();
//
正確的,同:return;
}
<2>.
void
FuncB()
{
return
FuncA();
//
也可以,同: FuncA();
}
這兩種特性在某些情況下,是很有用的。比如,我要寫(xiě)一個(gè)函數(shù)模板,以 任意的模板參數(shù)類(lèi)型 T 為返回值。
template
<
typename T
>
T FuncC()
{
return
T();
//
這里舉例返回 T();
}
template
<
typename T
>
T FuncD()
{
return
FuncC
<
T
>
();
}
所以即使對(duì)于 返回值 為 void 的情況,F(xiàn)uncD<void>(); 也是適用的。
如果編譯器不支持這種特性。那么當(dāng)我們就得針對(duì)void返回類(lèi)型進(jìn)行特化,或者函數(shù)重載,示例代碼如下:
//
一般處理
template
<
typename T
>
T FuncE()
{
return
FuncC
<
T
>
();
}
//
特化版本
template
<>
void
FuncE
<
void
>
()
{
FuncC
<
void
>
();
}
//
或者進(jìn)行重載亦可
void
FuncE()
{
FuncC
<
void
>
();
}
void
Test()
{
FuncE
<
int
>
();
//
泛化版本
FuncE
<
void
>
();
//
特化版本
FuncE();
//
重載版本
}
FuncE函數(shù)沒(méi)有參數(shù),可以特化或者重載,但如果它還有其他模板參數(shù)的話(huà),由于函數(shù)模板不支持部分特化,就只能使用重載模板函數(shù)了。
發(fā)現(xiàn)這種方式后,為我省了很多事,原來(lái)為了識(shí)別一個(gè)模板參數(shù)是否為void,我模擬stl 搞了個(gè) templeate <typename T> Return_Type_Trait {},然后利用類(lèi)模板的特化來(lái)專(zhuān)門(mén)定義一些類(lèi)型,以到達(dá)識(shí)別返回類(lèi)型的目的。現(xiàn)在看來(lái),都是多余的。可以使用這個(gè)特性來(lái)實(shí)現(xiàn)。
posted on 2009-07-08 11:54
李陽(yáng)
閱讀(9554)
評(píng)論(0)
編輯
收藏
引用
所屬分類(lèi):
C++
只有注冊(cè)用戶(hù)
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開(kāi)源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
關(guān)于C++中的臨時(shí)對(duì)象問(wèn)題
剖析Windows消息處理機(jī)制
關(guān)于 return void()
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
<
2025年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(7)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類(lèi)
C++(3)
Linux
LUA
游戲開(kāi)發(fā)
隨筆檔案
2011年8月 (1)
2010年2月 (1)
2010年1月 (1)
2009年7月 (1)
文章分類(lèi)
C++(42)
IT人生(3)
Linux(15)
LUA(2)
創(chuàng)業(yè)雜談(1)
經(jīng)典收藏(1)
人工智能
算法(2)
圖形圖像(6)
網(wǎng)絡(luò)編程(2)
游戲開(kāi)發(fā)(6)
文章檔案
2012年2月 (5)
2011年1月 (6)
2010年12月 (3)
2010年7月 (1)
2010年6月 (1)
2010年5月 (3)
2010年4月 (12)
2010年3月 (7)
2010年1月 (2)
2009年12月 (3)
2009年10月 (5)
2009年9月 (1)
2009年8月 (1)
2009年7月 (4)
2009年6月 (5)
2009年5月 (7)
2009年4月 (9)
2009年3月 (16)
2008年6月 (1)
2008年5月 (8)
2008年4月 (3)
2008年3月 (3)
2008年2月 (3)
2008年1月 (1)
2007年12月 (4)
2007年11月 (3)
鏈接
CodeGuru
CodeProject
sqlite中文站
VIM -幫助
Vim中文使用手冊(cè)
面向 Linux 程序員和系統(tǒng)管理員的技術(shù)資源
云風(fēng)的 BLOG
友情鏈接
Azure
Creator_Chen's dream island
icoder的博客
牽著老婆滿(mǎn)街逛
搜索
最新評(píng)論
1.?re: Linux下Gcc生成和使用靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)詳解(轉(zhuǎn))
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--hdp
2.?re: QueryPerformanceFrequency用法
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--chenyangming
3.?re: g++ 編譯和鏈接
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--李然
4.?re: 剖析Windows消息處理機(jī)制
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--小旭
5.?re: "當(dāng)前不會(huì)命中斷點(diǎn)。源代碼與原始版本不同"解決方法[未登錄](méi)
非常感謝
--blue
閱讀排行榜
1.?剖析Windows消息處理機(jī)制(11803)
2.?關(guān)于 return void()(9554)
3.?對(duì)C++ Local的經(jīng)典分析(轉(zhuǎn))(6679)
4.?關(guān)于C++中的臨時(shí)對(duì)象問(wèn)題(4765)
評(píng)論排行榜
1.?關(guān)于C++中的臨時(shí)對(duì)象問(wèn)題(6)
2.?對(duì)C++ Local的經(jīng)典分析(轉(zhuǎn))(2)
3.?剖析Windows消息處理機(jī)制(2)
4.?關(guān)于 return void()(0)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 李陽(yáng)
青青热久久综合网伊人
|
久久综合九色综合精品
|
久久久久久久波多野结衣高潮
|
久久精品无码一区二区三区
|
天天综合久久久网
|
狠狠88综合久久久久综合网
|
亚洲精品高清国产一线久久
|
久久久久久精品免费免费自慰
|
久久久久99这里有精品10
|
亚洲中文字幕无码久久2017
|
91久久香蕉国产熟女线看
|
狠狠色丁香婷婷综合久久来来去
|
国产精品久久婷婷六月丁香
|
久久精品国产2020
|
久久精品无码一区二区三区免费
|
午夜精品久久久久成人
|
日本精品久久久久中文字幕
|
中文字幕久久久久人妻
|
久久久久久久综合综合狠狠
|
国产一级持黄大片99久久
|
伊人久久大香线蕉综合网站
|
国产精品无码久久四虎
|
国产精品久久久久久久久免费
|
中文字幕人妻色偷偷久久
|
亚洲国产精品狼友中文久久久
|
国产精品免费看久久久香蕉
|
精品精品国产自在久久高清
|
久久综合亚洲色HEZYO社区
|
久久综合色区
|
久久久亚洲裙底偷窥综合
|
五月丁香综合激情六月久久
|
久久久久久伊人高潮影院
|
久久99亚洲网美利坚合众国
|
久久精品国产亚洲5555
|
久久久久久国产精品无码下载
|
久久精品国产亚洲αv忘忧草
|
久久国产乱子伦免费精品
|
久久99国产精品99久久
|
国产成人精品综合久久久久
|
久久天天躁狠狠躁夜夜2020一
|
久久无码人妻一区二区三区
|