1::const_closure_type,
                                      scalar_const_reference&lt;T2&gt;, F&gt; expression_type;
        typedef expression_type result_type;
    };

    // (v * t) [i] = v [i] * t
    template&lt;class E1, class T2&gt;
    typename vector_binary_scalar2_traits&lt;E1, T2, scalar_multiplies&lt;typename E1::value_type, T2&gt; &gt;::result_type
    operator * (const vector_expression&lt;E1&gt; &amp;e1,
                const T2 &amp;e2);

    // (v / t) [i] = v [i] / t
    template&lt;class