I'm trying to use scalar_vector for a r-value in a vector assignment. Such as:

vector<int> a;
a = scalar_vector( 3, 4 );  // 3 elements of the value 4

This is generating a compiler error with the 1.33 rc2 boost code.
error C2039: 'size' : is not a member of 'boost::numeric::ublas::vector_container<C>'

For this method in class vector:

        template <class C>          // Container assignment without temporary
        BOOST_UBLAS_INLINE
        vector &
operator = (const vector_container<C> &v) {
            resize (v.size (),
false );   // **<===               size on the vector container needed.
            assign (v);
           
return *this;
        }

When I look at vector_container, and it's parent class vector_expression, I don't see a size method defined.

The work around seems to be
a.assign( scalar_vector( 3, 4) );

Which then treats the scalar_vector as an expression and uses method in class vector

        template <class AE>
        BOOST_UBLAS_INLINE
        vector &assign (
const vector_expression<AE> &ae) {
            vector_assign<scalar_assign> (*
this, ae);
           
return *this;
        }