# HG changeset patch # User Jaroslav Hajek # Date 1278072657 -7200 # Node ID f0304c545588862fa021ed5d3b411d604b12c90d # Parent 3952b4c4e44a911594e9f025275662932dcdef4e make map constructors from octave_fields public diff -r 3952b4c4e44a -r f0304c545588 src/oct-map.cc --- a/src/oct-map.cc Fri Jul 02 10:18:14 2010 +0200 +++ b/src/oct-map.cc Fri Jul 02 14:10:57 2010 +0200 @@ -42,6 +42,14 @@ (*rep)[fields(i)] = i; } +octave_fields::octave_fields (const char * const *fields) + : rep (new fields_rep) +{ + octave_idx_type n = 0; + while (*fields) + (*rep)[std::string (*fields++)] = n++; +} + bool octave_fields::isfield (const std::string& field) const { @@ -112,8 +120,6 @@ { bool retval = true; - octave_idx_type n = nfields (); - iterator p = begin (), q = other.begin (); for (; p != end () && q != other.end (); p++, q++) { @@ -135,8 +141,6 @@ octave_fields::equal_up_to_order (const octave_fields& other, Array& perm) const { - bool retval = true; - octave_idx_type n = nfields (); if (perm.length () != n) perm.clear (1, n); diff -r 3952b4c4e44a -r f0304c545588 src/oct-map.h --- a/src/oct-map.h Fri Jul 02 10:18:14 2010 +0200 +++ b/src/oct-map.h Fri Jul 02 14:10:57 2010 +0200 @@ -58,6 +58,7 @@ octave_fields (void) : rep (&nil_rep) { rep->count++; } octave_fields (const string_vector&); + octave_fields (const char * const *); ~octave_fields (void) { @@ -145,11 +146,11 @@ class OCTINTERP_API octave_scalar_map { +public: + octave_scalar_map (const octave_fields& k) : xkeys (k), xvals (k.nfields ()) { } -public: - octave_scalar_map (void) : xkeys (), xvals () { } octave_scalar_map (const string_vector& k) @@ -253,14 +254,14 @@ class OCTINTERP_API octave_map { +public: + octave_map (const octave_fields& k) : xkeys (k), xvals (k.nfields ()), dimensions () { } octave_map (const dim_vector& dv, const octave_fields& k) : xkeys (k), xvals (k.nfields (), Cell (dv)), dimensions (dv) { } -public: - typedef octave_scalar_map element_type; octave_map (void) : xkeys (), xvals (), dimensions () { }