После перехода с Xcode 3 на 4.3 в отладчике я не смог просмотреть переменные-члены во вложенных шаблонных классах, таких как связанные списки. У кого-нибудь есть мысли о том, как посмотреть?
Вот пример, за которым следует то, что я могу и не могу видеть в окне «переменных» отладчика:
template<class T> class linkedList;
template<class T> class listItem;
template<class T> class listItem {
public:
T data;
listItem<T> *previous, *next;
listItem(T x):data(x), previous(0), next(0){}
};
template<class T> class linkedList{
public:
int length;
listItem<T> *first,*last;
linkedList(void): first(0), last(0), length(0) {}
~linkedList(void){Clear();}
void Append(T x);
void Clear(void){
while(length>0) DeleteLast();}
void DeleteLast(void);
};
template<class T> void linkedList<T>::Append (T x) {
listItem<T> *item = new listItem<T>(x);
if (length == 0) {first = item;}
else {
item->previous = last;
last->next = item;}
item->next = NULL;
last = item;
length++;
}//Append
template<class T> void linkedList<T>::DeleteLast (void) {
if (length > 0) {
listItem<T> *item = last;
if (length == 1) {
first = last = NULL;
length = 0;
delete item; item = NULL;
return;}
else if (length == 2) {
last = item->previous;
last->next = NULL;
first = last;}
else {
item->previous->next = NULL;
last = item->previous;}
length--;
delete item;item=NULL;
}
}//DeleteLast
int main(){
linkedList<int> theList;
theList.Append(4);
theList.Append(5);
return 0;
}
Проходя и наблюдая в окне переменных, я получаю:
theList= (linkedList<int>)
length= (int) 2
first= (listItem*) 0x0000000100100a80
last= (listItem*) 0x0000000100100aa0
То, что я хочу видеть, это не только адреса элементов 'first' и 'last', но их разыменованное содержимое, целые числа 4 и 5. Эта информация была видна в Xcode 3.
Есть мысли?