我有一個Kd-Tree實現,它被模板化爲接受任何大於0的維和任何浮點類型(float,double等等)。這樣的事情:假設類模板參數
template <typename real, size_t dimensions> class KdTree
{
// stuff
}
而且我有一個伴隨「點」類型具有完全相同的模板佈局。然而,這一點類型需要從kd-tree類別以外訪問。現在,每次我需要在我的kd-tree代碼中創建臨時點時,我需要明確地去KdPoint<real, dimensions>
,這很煩人,使我的行很長,並且對代碼沒有任何價值。
有沒有什麼辦法可以告訴編譯器隱式地假設real
和dimensions
被傳遞給類的所有值?以某種方式將兩個模板列表鏈接在一起。爲了能夠輸入KdPoint
,編譯器將根據類所接收到的模板參數直接知道應該放入哪些內容。
否則,我需要使用宏來明確地將後者擴展爲前者,哪種類型的吸引。
謝謝 - 第一個選項是我的最實用的。 – Thomas