一路向北
追逐夢想,永不停步......
C++博客
首頁
新隨筆
聯系
聚合
管理
隨筆-4 評論-40 文章-117 trackbacks-0
關于 return void()
大家都知道,return 用來在函數里返回,有兩種形式:一是 直接用return; 或者省略,表示無返回值。二是 return expression; 返回一個值。
今天測試時我發現兩種以前沒注意的方式,也是正確的。
<1>.
void
FuncA()
{
return
void
();
//
正確的,同:return;
}
<2>.
void
FuncB()
{
return
FuncA();
//
也可以,同: FuncA();
}
這兩種特性在某些情況下,是很有用的。比如,我要寫一個函數模板,以 任意的模板參數類型 T 為返回值。
template
<
typename T
>
T FuncC()
{
return
T();
//
這里舉例返回 T();
}
template
<
typename T
>
T FuncD()
{
return
FuncC
<
T
>
();
}
所以即使對于 返回值 為 void 的情況,FuncD<void>(); 也是適用的。
如果編譯器不支持這種特性。那么當我們就得針對void返回類型進行特化,或者函數重載,示例代碼如下:
//
一般處理
template
<
typename T
>
T FuncE()
{
return
FuncC
<
T
>
();
}
//
特化版本
template
<>
void
FuncE
<
void
>
()
{
FuncC
<
void
>
();
}
//
或者進行重載亦可
void
FuncE()
{
FuncC
<
void
>
();
}
void
Test()
{
FuncE
<
int
>
();
//
泛化版本
FuncE
<
void
>
();
//
特化版本
FuncE();
//
重載版本
}
FuncE函數沒有參數,可以特化或者重載,但如果它還有其他模板參數的話,由于函數模板不支持部分特化,就只能使用重載模板函數了。
發現這種方式后,為我省了很多事,原來為了識別一個模板參數是否為void,我模擬stl 搞了個 templeate <typename T> Return_Type_Trait {},然后利用類模板的特化來專門定義一些類型,以到達識別返回類型的目的。現在看來,都是多余的。可以使用這個特性來實現。
posted on 2009-07-08 11:54
李陽
閱讀(9554)
評論(0)
編輯
收藏
引用
所屬分類:
C++
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
關于C++中的臨時對象問題
剖析Windows消息處理機制
關于 return void()
網站導航:
博客園
IT新聞
BlogJava
博問
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
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(7)
給我留言
查看公開留言
查看私人留言
隨筆分類
C++(3)
Linux
LUA
游戲開發
隨筆檔案
2011年8月 (1)
2010年2月 (1)
2010年1月 (1)
2009年7月 (1)
文章分類
C++(42)
IT人生(3)
Linux(15)
LUA(2)
創業雜談(1)
經典收藏(1)
人工智能
算法(2)
圖形圖像(6)
網絡編程(2)
游戲開發(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中文使用手冊
面向 Linux 程序員和系統管理員的技術資源
云風的 BLOG
友情鏈接
Azure
Creator_Chen's dream island
icoder的博客
牽著老婆滿街逛
搜索
最新評論
1.?re: Linux下Gcc生成和使用靜態庫和動態庫詳解(轉)
評論內容較長,點擊標題查看
--hdp
2.?re: QueryPerformanceFrequency用法
評論內容較長,點擊標題查看
--chenyangming
3.?re: g++ 編譯和鏈接
評論內容較長,點擊標題查看
--李然
4.?re: 剖析Windows消息處理機制
評論內容較長,點擊標題查看
--小旭
5.?re: "當前不會命中斷點。源代碼與原始版本不同"解決方法[未登錄]
非常感謝
--blue
閱讀排行榜
1.?剖析Windows消息處理機制(11803)
2.?關于 return void()(9554)
3.?對C++ Local的經典分析(轉)(6679)
4.?關于C++中的臨時對象問題(4765)
評論排行榜
1.?關于C++中的臨時對象問題(6)
2.?對C++ Local的經典分析(轉)(2)
3.?剖析Windows消息處理機制(2)
4.?關于 return void()(0)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 李陽
国产精品99久久免费观看
|
老司机午夜网站国内精品久久久久久久久
|
色99久久久久高潮综合影院
|
久久精品国产亚洲AV高清热
|
青草国产精品久久久久久
|
色欲av伊人久久大香线蕉影院
|
久久久久九国产精品
|
欧美无乱码久久久免费午夜一区二区三区中文字幕
|
9久久9久久精品
|
大香网伊人久久综合网2020
|
国产亚洲色婷婷久久99精品91
|
久久久久亚洲AV无码专区网站
|
品成人欧美大片久久国产欧美...
|
伊人丁香狠狠色综合久久
|
亚州日韩精品专区久久久
|
开心久久婷婷综合中文字幕
|
欧美日韩精品久久久久
|
精品久久久久久成人AV
|
99久久精品国产麻豆
|
国产精品美女久久久久AV福利
|
精品久久久久中文字
|
伊人伊成久久人综合网777
|
久久精品99久久香蕉国产色戒
|
久久久久久无码Av成人影院
|
亚洲国产精品热久久
|
久久亚洲国产精品123区
|
久久精品国产亚洲AV蜜臀色欲
|
亚洲精品乱码久久久久66
|
久久精品a亚洲国产v高清不卡
|
久久久青草青青亚洲国产免观
|
伊人久久亚洲综合影院
|
久久综合国产乱子伦精品免费
|
四虎国产永久免费久久
|
中文成人无码精品久久久不卡
|
日韩人妻无码精品久久免费一
|
久久99精品国产麻豆宅宅
|
色综合久久无码五十路人妻
|
久久精品国产亚洲欧美
|
久久久久久国产精品无码下载
|
91久久精品视频
|
欧洲精品久久久av无码电影
|