1- typedef

boost::numeric::ublas::sparse_matrix<double > spm_t;

2- spm_t::iterator1 iter1 = begin(A, iterator1_tag);

3- spm_t::iterator2 iter2= iter1.begin();
 
With this simple code the compiler complains that in 3) begin is not a method of iter1 and in 2) that iterator1_tag is not appliable.