我想創建一個面向對象的基於模板的通用圖結構,然而在我的設計中,我遇到了一個可能的循環依賴關係,我不知道如何避免。又一個模板循環依賴問題
我定義我的頂點和邊緣類,如下所示:
template <class label_type, class edge_type>
class basic_vertex { .. }
template <class vertex_type, class weight_type = std::int32_t>
class basic_edge { .. }
在頂點I類保持由存儲指向它們一個std ::名單附到該節點的內緣部分和外邊緣的軌道。
在邊緣對象中,我保留2個引用來表示源和目標頂點。
如果我要填寫頂點模板參數,我需要知道邊緣的類型。爲了知道我需要知道的頂點類型的邊的類型。
任何想法如何解決這個問題?
你能解釋你爲什麼使用模板嗎? – alestanis
@alestanis:我試圖使其儘可能通用且儘可能快。 –
Re *我試圖使它儘可能通用且儘可能快*:模板不是魔法編程灰塵,它使事情變得更快。就通用性而言,這聽起來像是不成熟的優化。所以再一次,你爲什麼使用模板? –