Ctemplate為什麼不能推導返回值型別

2021-03-04 06:47:00 字數 2119 閱讀 5848

1樓:lsz**凌波飛翔

為了盡可能與 c 保持語法和語義上的相容性,在 c++ 中,對於函式的呼叫方而言,返回值總是可以忽略的。

也就是說,對於給定的函式

int foo()

呼叫方可以這麼寫:

foo();  // 忽略返回值

對於模版函式而言,如果依賴返回值做模板的型別推導,就會出現由於呼叫資訊不全導致的二義性。

還是剛才這個例子,我們改為對應的函式模版,template

t foo()

假如我們允許借助返回值來推導(如下所示)

int a = foo();   // 特化為 foo()double b = foo();   // 特化為 foo()那麼當呼叫方像之前的例子那樣調的時候,編譯器就沒辦法處理了:

foo(); // 報錯,因為缺乏足夠資訊做模板例項化總結一下,一句話結論——「為了與c保持相容,返回值並非是呼叫函式時的必要條件,因此函式模版型別推導和函式過載都不能且不應依賴返回值。」

c++關於模板類函式返回值

2樓:風雷雪電

請問你要返回哪個類的物件?返回什麼型別就寫什麼就行了,以下寫法都是可以的:

#include

#include

using namespace std;

template

class car

};int main()

好像在類裡都可以省略,我在dev-cpp 4.9.9.2和visual studio 2012裡都編譯過了,如下:

car show()

;template

class car

};總之就是想要返回什麼就寫什麼就行了。

如果沒講到你想知道的,就把問題寫清楚點繼續追問。

3樓:

很明顯,書中有點錯誤,按原意***應該寫car

當然,如果你想返回其他型別,比如int,你也可以用int來代替

還有不明白請追問..好的話贊乙個吧

4樓:東哥

c++ 11 還不支援

模板函式返回值 型別自動推導,新的標準可能會支援,目前主流的 編譯器 應該都不支援。

此處可使用:

template

a plus(a a,a b)

c++:

c++是在c語言的基礎上開發的一種物件導向程式設計語言,應用廣泛。c++支援多種程式設計正規化 --物件導向程式設計、泛型程式設計和過程化程式設計。最新正式標準c++14於2023年8月18日公布。

[1] 其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大程式設計師受用的最強大程式語言之一,支援類:類、封裝、過載等特性。

c++ template 為什麼不能推導返回值型別

5樓:幻夢·人生

返回值不能作為區分函式的標誌。比如說在函式過載中,不同形引數目,不同形參型別都可以過載,但是不同函式返回值,就不能過載。因為編譯器無法區分兩個函式的差別。

模板有同樣的問題,函式呼叫時完全可以不獲取返回值,那這種情況讓編譯如何自處。如果強制必須使用返回值,就違法了c++的基本原則,並不合理。所以無法推導返回值也是可以理解的了。

6樓:時空魔法

template 這個就是返回值型別

關於c++模板函式返回值的問題

7樓:匿名使用者

c++ 11 還不支援 模板函式返回值 型別自動推導,新的標準可能會支援,目前主流的 編譯器 應該都不支援。

此處可使用:

template

a plus(a a,a b)

8樓:97樂於助人

因為主函式裡面呼叫了grade函式,而grade函式裡面有輸出語句,所以會有書上的結果。

並不是返回給了主函式值。

9樓:匿名使用者

template

auto plus(a a,a b);

直接寫成返回 為 a型別的就行了

template

a plus(a a,a b);

在定義中也做相應更改。

地推怎麼做最有效?為什麼要做地推?

地推的推廣其實就是範圍和模式的推廣,只要模式新穎那麼你地推就非常好推,以前的時候借貸寶的地推其實就是很厲害的。地推,是需要精心準備的。推廣人員在準備前期一定要策劃好整個地推流程,以及關鍵時間點,根據產品特有屬性做一些前期調研。例如,從分析商圈不同 場景選擇 勘察交通要道 場地位置選擇 選擇 時間 活...

現在21歲了,大家推建推建能不能幾本你們個人心意的書,能提高

古人來講,修身 齊家 治國 平天源下。怎樣修身?讀書,就是乙個好渠道。以書為鏡,可以修身立德。哲學可以使人明智,歷史可以增加良知。讀修身養性的書,就如同與聖賢交談,可收到 玩古訓以警心,悟至理以明志 的效果 就像眼前豎起了一面晶瑩透亮的鏡子。透過這面鏡子,學以聚之,問以辨之,日積月累,既開心明目,利...

猜謎語什麼車只能自己坐不能自己推

火車吧 什麼車自己只能坐,不能自己推?那不就是乙個成語嗎?什麼車自己幾年做不能吹,那不就是火車嗎?什麼車?自己只能做,不能推,我感覺是汽車是推不動的,只能坐著呀 猜謎語什麼車乙個人能騎兩個人不行 任何車子都是乙個人騎,乙個人坐 乙個電動車帶兩個人謎語 猜謎語什麼車不能載人 風車 水車 回車 鍵 堵車...