2015-04-05 59 views
1

什麼時候使用size_t作爲模板函數的參數是一個壞主意?我知道size_t是一個unsigned int,但是我的教授在課上提到使用size_t作爲模板類的參數是不好的。任何想法爲什麼?什麼時候使用size_t作爲模板函數的參數是一個壞主意?

+9

你應該向教授提問。 – 2015-04-05 00:19:57

+3

使**完全沒有意義。 'size_t'與'int'或'short'一樣好。實際上,它經常用於處理數組的模板代碼中,因爲它代表了一個「索引」。你經常看到'template ...' – vsoftco 2015-04-05 00:23:06

+0

已經在春假了,教授沒有迴應。但是,size_t只是一個無符號整數。 Int更好,因爲它至少可以使用負值。 – Ami 2015-04-05 00:23:58

回答

7

使用size_t作爲模板參數沒有任何問題。

使用任何類型作爲模板參數沒有任何問題。

+0

很好的答案! – 2015-04-05 00:31:01

+0

非常感謝 – Ami 2015-04-05 00:34:03

+1

這是我在這個網站上看到的最短,最簡潔的答案之一,雖然有點解釋「爲什麼使用* any *類型作爲模板參數並不是錯誤的」一些好的。 – vsoftco 2015-04-05 00:37:46

0

我能想到的唯一原因是size_t在32位和64位中大小不同。如果您在某種序列化模板函數中使用它,那麼以32位代碼序列化的數據將與您的64位代碼不兼容。這是序列化size_t的更多問題,而不是模板特有的。如果你問你的教授,我會有興趣聽到他說的話!

+1

這與'int','unsigned int'等沒有什麼不同,所以它不是真正有效的原因。 – 2015-04-05 01:16:19

+0

好點。真正好奇的是什麼意思:p – 2015-04-05 01:18:48

+0

他可能意思是「我希望我知道我在說什麼」:-) – 2015-04-05 01:19:36

相關問題