int main () { QLinkedList<QString> list; list.prepend("one"); list.prepend("two"); list.prepend("three"); assert(list.first() == "three"); // list: ["three", "two", "one"] return 0; }
void tst_ExceptionSafety::exceptionLinkedList() { { QLinkedList<FlexibleThrowerSmall> list; QLinkedList<FlexibleThrowerSmall> list2; QLinkedList<FlexibleThrowerSmall> list3; for( int i = 0; i<10; i++ ) list.append( FlexibleThrowerSmall(i) ); try { throwType = ThrowAtCopy; list.append( FlexibleThrowerSmall(10)); } catch (...) { } QCOMPARE( list.size(), 10 ); try { throwType = ThrowAtCopy; list.prepend( FlexibleThrowerSmall(10)); } catch (...) { } QCOMPARE( list.first().value(), 0 ); QCOMPARE( list.size(), 10 ); try { throwType = ThrowAtCopy; list3 = list; list3.append( FlexibleThrowerSmall(11) ); } catch (...) { } QCOMPARE( list.first().value(), 0 ); QCOMPARE( list.size(), 10 ); QCOMPARE( list3.size(), 10 ); } QCOMPARE(objCounter, 0 ); // check that every object has been freed }