2014-11-23 16 views
0

這不是一個嚴格的編程問題,但爲什麼tuple定義在單獨的標題中,而不是被添加到<utility>以及pair?這看起來更自然,更少混亂等。元組 - 單獨標題的原因

+1

比將'tuple'放在名爲''的標題中更自然嗎? – Barry 2014-11-23 20:29:08

+1

它只是一個工具類,就像沒有'pair'頭 – Wojtek 2014-11-23 20:30:25

回答

1

有細粒度的標題和只有一個標題(例如建議<all>)之間有張力。由於編譯器必須處理每個頭文件中的令牌,並且一些內部數據結構也隨着所看到的聲明(特別是聲明使用相同名稱,如operator<<())而增長,因此存在編譯時的折衷。 tuple<T...>的原始實現來自Boost,並且早於可變參數模板的使用:因此,實現諸如tuple<T...>之類的必要聲明相當大。這導致std::experimental::tuple<T...>被放入它自己的標題中,並沒有任何改變這個組織的建議。

順便說一句,std::tuple<...>什麼都沒有STL做。

相關問題