1// Build don't link: 2// GROUPS passed nested-classes 3class BDDHeap { 4public: 5 BDDHeap(); 6 BDDHeap(const BDDHeap&); 7 8 class Page { 9 public: 10 int i; 11 }; 12 struct Pointer { 13 Page *page; 14 unsigned index; 15 16 Pointer(); 17 Pointer(const BDDHeap& heap); 18 }; 19 20 struct Half { 21 struct { 22 Page *top; 23 Page **tail; 24 } inuse; 25 26 Half(); 27 }; 28 29 Half half[2]; 30 unsigned halfspace; 31}; 32 33inline 34BDDHeap::Pointer::Pointer(const BDDHeap& heap): 35page(heap.half[heap.halfspace].inuse.top), 36index(0) 37{ } 38