3
std::is_empty<std::tuple<Args...>>::value
返回true,如果在Args
每一個類型是空的? gcc 4.9中的快速測試表明這是這種情況,但標準要求它嗎?
std::is_empty<std::tuple<Args...>>::value
返回true,如果在Args
每一個類型是空的? gcc 4.9中的快速測試表明這是這種情況,但標準要求它嗎?
不,不要求tuple
使用繼承來啓用空基類優化。
元組庫的唯一文本規範是:
本小節描述的元組庫,提供了一個元組類型作爲類模板的元組,可以用 任意數量的參數被實例化。每個模板參數指定元組中元素 的類型。因此,元組是異構的,固定大小的值集合。具有兩個參數的 元組的實例類似於具有相同兩個參數的對的實例化。
沒有提及任何實現細節;並且模板規範開始:
template <class... Types>
class tuple {
未指定它必須從任何東西繼承。
+1我仍然覺得這個問題有點奇怪,但這是非常準確的答案。 – 2014-10-16 15:54:39
誰說'tuple'類甚至可以繼承任何東西? – jrok 2014-10-16 14:00:56
@jrok:沒有人說。問題是問是否是這樣。 – 2014-10-16 14:05:25
就我所能讀的標準而言,似乎對元組實現沒有要求。 – Bulletmagnet 2014-10-16 14:23:26