ultimatepp/bazaar/ADTTest/main.cpp
cxl 80b2bedd73 bazaar: C++11 fixes
git-svn-id: svn://ultimatepp.org/upp/trunk@9128 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2015-11-01 18:48:32 +00:00

57 lines
No EOL
1.1 KiB
C++

#include <Core/Core.h>
#include <ADT/ADT.h>
using namespace Upp;
CONSOLE_APP_MAIN
{
// SList tests.
{
using ADT::SListNode;
using ADT::SList;
struct Node : public SListNode<Node> {
Node(int i) : i(i) {}
const int i;
};
typedef SList<Node> List;
Node n0(0), n1(1), n2(2), n3(3), n4(4), n5(5);
List list;
list.PushFront(&n0).PushFront(&n1).PushFront(&n2).PushFront(&n3).PushFront(&n4);
for (SList<Node>::ForwardRange r = list.ForwardR(); !r.IsEmpty(); r.PopFront())
r.Front();
for (SList<Node>::ForwardRange r = list.ForwardR(); !r.IsEmpty(); r.PopFront())
Cout() << r.Front().i << " ";
Cout() << EOL;
}
// DList tests.
{
using ADT::DListNode;
using ADT::DList;
struct Node : public DListNode<Node>
{
Node(int i) : i(i) {}
const int i;
};
typedef DList<Node> List;
Node n0(0), n1(1), n2(2), n3(3), n4(4), n5(5);
List list;
list << n0 << n1 << n2 << n3 << n4;
ASSERT(list.GetLast() == &n4);
for (DList<Node>::ForwardRange r = list.ForwardR(); !r.IsEmpty(); r.PopFront())
r.Front();
n1.ReplaceThisWith(&n5);
n0.RemoveThis();
}
}