 template <class Vector>
 void TestVectorManipulation(size_t n)
 {
+    typedef typename Vector::iterator   Iterator;
     typedef typename Vector::value_type T;
 
     thrust::host_vector<T> src = unittest::random_samples<T>(n);

    Vector tail(vec1.begin() + n, vec1.end());
    ASSERT_EQUAL( (tail == std::vector<T>(20, (T) 11)), true);

    vec1.resize(0);
    ASSERT_EQUAL(vec1.size(), 0);
    ASSERT_EQUAL(vec1.empty(), true);

    }

    // pop_back
    for(size_t i = 10; i > 0; --i)
    {
        ASSERT_EQUAL(vec2.size(), i);
        ASSERT_EQUAL(vec2.back(), i-1);
        vec2.pop_back();
