variant variant::list_elements_div(const variant& v) const { must_be(TYPE_LIST); v.must_be(TYPE_LIST); if( num_elements() != v.num_elements() ) throw type_error("Operator './' requires two lists of the same length"); std::vector< variant > res; res.reserve(num_elements()); for(size_t i = 0; i < num_elements(); ++i) { res.push_back( (*this)[i] / v[i] ); } return variant( &res ); }