Sorun daha önce birçok kez tartışılmıştır. bir ihtiyacı varsa ne yapılmalı:Tamamlanmamış türlerde grafik/ağaç uygulaması
struct Node
{
::std::vector<Node> nodes_;
};
here itibaren bir Node*
için (akıllı) işaretçileri kanonik çözüm olabilir izlenimini alır. Bu, bazı ek dolaylı ve buna karşılık gelen bir performans isabeti anlamına gelir. here itibaren biz T
değil libc++
tamamlanmamış bir türüdür, ama nerede libstdc++
, ::std::vector<T>
instantiations desteklediğini görüyoruz. Bu neredeyse taşınabilir. Ancak bir çözüm, eksik türleri destekleyen portatif bir ::std::vector
görünüm kabı olabilir. Son olarak, grafiğimiz/ağacımız üzerinde sınırlamalar getirecek olan
. Node
'un Node
s içerdiği, ancak ::std::vector<Node> nodes_;
beyanı noktasında tamamlanmamış bir tür olması nedeniyle ek geçici çözümler var mı? Tamamlanmamış türleri ele almak ve taşınabilir olmak için
bunun için bir destek kütüphane bulunmaktadır. – zch
@zch Yorumunuzu cevaplayacak mısınız? Kabul edeceğim. – user1095108