1- typedef
boost::numeric::ublas::sparse_matrix<double
> spm_t;
2- spm_t::iterator1 iter1 = begin(A, iterator1_tag);
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.