Tsint main(const CStringBuffer<CString>& a_crArguments, const CStringBuffer<CString>& a_crEnvironment)
    {   CALL
        IGNORE_UNUSED(a_crArguments);
        IGNORE_UNUSED(a_crEnvironment);

        // Use standard output stream of the current process.
        CStreamStdOutput stdoutput(true);

        CArray<Tbool> a;

        // Fill the array.
        a.insertFirst(false);
        a.insertFirst(true);
        a.insertLast(false);
        a.insertLast(true);
        a.insertIndex(2, true);

        // Show the array.
        stdoutput << a;

        // Copy the array.
        CArray<Tbool> b(a);

        // Reverse the array.
        b.reverse();

        // Show the reversed array.
        stdoutput << b;

        // Remove items from arrays.
        remove(stdoutput, a, true);
        remove(stdoutput, b, false);

        return IApplication::EXIT_WITH_SUCCESS;
    }
 // Check the fill functionality of the CArray<Tsint>.
 void UT_ASSERT_CHECK_FILL(CArray<Tsint>& a_rArray, const Tbool a_cDirectOrder)
 { CALL
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(6) : a_rArray.insertLast(1));
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(5) : a_rArray.insertLast(2));
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(4) : a_rArray.insertLast(3));
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(3) : a_rArray.insertLast(4));
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(2) : a_rArray.insertLast(5));
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(1) : a_rArray.insertLast(6));
 }
 // Check the fill functionality of the CArray<Tbool>.
 void UT_ASSERT_CHECK_FILL(CArray<Tbool>& a_rArray, const Tbool a_cDirectOrder)
 { CALL
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(false) : a_rArray.insertLast(true));
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(true)  : a_rArray.insertLast(false));
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(false) : a_rArray.insertLast(true));
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(true)  : a_rArray.insertLast(false));
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(false) : a_rArray.insertLast(true));
   UT_ASSERT(a_cDirectOrder ? a_rArray.insertFirst(true)  : a_rArray.insertLast(false));
 }