|  | 
|  | CompositeUnit (string cat_, string name_, string title_="", string base_expression_="", bool is_local=true, bool is_builtin=false, bool is_active=true) | 
|  | 
|  | CompositeUnit (const CompositeUnit *unit) | 
|  | 
| virtual ExpressionItem * | copy () const | 
|  | 
| virtual void | set (const ExpressionItem *item) | 
|  | 
| virtual void | add (Unit *u, int exp=1, Prefix *prefix=NULL) | 
|  | 
| virtual Unit * | get (size_t index, int *exp=NULL, Prefix **prefix=NULL) const | 
|  | 
| virtual void | setExponent (size_t index, int exp) | 
|  | 
| virtual void | setPrefix (size_t index, Prefix *prefix) | 
|  | 
| virtual size_t | countUnits () const | 
|  | 
| virtual size_t | find (Unit *u) const | 
|  | 
| virtual void | del (size_t index) | 
|  | 
| virtual string | print (bool plural_, bool short_, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const | 
|  | 
| virtual int | subtype () const | 
|  | 
| virtual bool | containsRelativeTo (Unit *u) const | 
|  | 
| virtual MathStructure | generateMathStructure (bool make_division=false, bool set_null_prefixes=false) const | 
|  | 
| virtual void | setBaseExpression (string base_expression_) | 
|  | 
| virtual void | clear () | 
|  | 
|  | Unit (string cat_, string name_, string plural_="", string singular_="", string title_="", bool is_local=true, bool is_builtin=false, bool is_active=true) | 
|  | 
|  | Unit (const Unit *unit) | 
|  | 
| bool | isSIUnit () const | 
|  | 
| void | setAsSIUnit () | 
|  | 
| void | setSystem (string s_system) | 
|  | 
| const string & | system () const | 
|  | 
| bool | useWithPrefixesByDefault () const | 
|  | 
| void | setUseWithPrefixesByDefault (bool use_with_prefixes) | 
|  | 
| bool | isCurrency () const | 
|  | 
| virtual const string & | plural (bool return_singular_if_no_plural=true, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const | 
|  | 
| virtual const string & | singular (bool return_abbreviation_if_no_singular=true, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const | 
|  | 
| virtual const string & | abbreviation (bool return_singular_if_no_abbreviation=true, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const | 
|  | 
| virtual bool | isUsedByOtherUnits () const | 
|  | 
| virtual Unit * | baseUnit () const | 
|  | 
| virtual MathStructure & | convertToBaseUnit (MathStructure &mvalue, MathStructure &mexp) const | 
|  | 
| virtual MathStructure & | convertFromBaseUnit (MathStructure &mvalue, MathStructure &mexp) const | 
|  | 
| virtual MathStructure & | convertToBaseUnit (MathStructure &mvalue) const | 
|  | 
| virtual MathStructure & | convertFromBaseUnit (MathStructure &mvalue) const | 
|  | 
| virtual MathStructure | convertToBaseUnit () const | 
|  | 
| virtual MathStructure | convertFromBaseUnit () const | 
|  | 
| virtual int | baseExponent (int exp=1) const | 
|  | 
| virtual int | type () const | 
|  | 
| virtual bool | isChildOf (Unit *u) const | 
|  | 
| virtual bool | isParentOf (Unit *u) const | 
|  | 
| virtual bool | hasComplexRelationTo (Unit *u) const | 
|  | 
| bool | convert (Unit *u, MathStructure &mvalue, MathStructure &exp) const | 
|  | 
| bool | convert (Unit *u, MathStructure &mvalue) const | 
|  | 
| MathStructure | convert (Unit *u, bool *converted=NULL) const | 
|  | 
|  | ExpressionItem (string cat_, string name_, string title_="", string descr_="", bool is_local=true, bool is_builtin=false, bool is_active=true) | 
|  | 
| virtual bool | destroy () | 
|  | 
| bool | isRegistered () const | 
|  | 
| void | setRegistered (bool is_registered) | 
|  | For internal use. 
 | 
|  | 
| virtual const string & | name (bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const | 
|  | 
| virtual const string & | referenceName () const | 
|  | 
| virtual const ExpressionName & | preferredName (bool abbreviation=false, bool use_unicode=false, bool plural=false, bool reference=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const | 
|  | 
| virtual const ExpressionName & | preferredInputName (bool abbreviation=false, bool use_unicode=false, bool plural=false, bool reference=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const | 
|  | 
| virtual const ExpressionName & | preferredDisplayName (bool abbreviation=false, bool use_unicode=false, bool plural=false, bool reference=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const | 
|  | 
| virtual const ExpressionName & | getName (size_t index) const | 
|  | 
| virtual void | setName (const ExpressionName &ename, size_t index=1, bool force=true) | 
|  | 
| virtual void | setName (string sname, size_t index, bool force=true) | 
|  | 
| virtual void | addName (const ExpressionName &ename, size_t index=0, bool force=true) | 
|  | 
| virtual void | addName (string sname, size_t index=0, bool force=true) | 
|  | 
| virtual size_t | countNames () const | 
|  | 
| virtual void | clearNames () | 
|  | 
| virtual void | clearNonReferenceNames () | 
|  | 
| virtual void | removeName (size_t index) | 
|  | 
| virtual size_t | hasName (const string &sname, bool case_sensitive=true) const | 
|  | 
| virtual size_t | hasNameCaseSensitive (const string &sname) const | 
|  | 
| virtual const ExpressionName & | findName (int abbreviation=-1, int use_unicode=-1, int plural=-1, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const | 
|  | 
| virtual const string & | title (bool return_name_if_no_title=true, bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const | 
|  | 
| virtual void | setTitle (string title_) | 
|  | 
| virtual const string & | description () const | 
|  | 
| virtual void | setDescription (string descr_) | 
|  | 
| virtual const string & | category () const | 
|  | 
| virtual void | setCategory (string cat_) | 
|  | 
| virtual bool | hasChanged () const | 
|  | 
| virtual void | setChanged (bool has_changed) | 
|  | 
| virtual bool | isLocal () const | 
|  | 
| virtual bool | setLocal (bool is_local=true, int will_be_active=-1) | 
|  | 
| virtual bool | isBuiltin () const | 
|  | 
| virtual bool | isApproximate () const | 
|  | 
| virtual void | setApproximate (bool is_approx=true) | 
|  | 
| virtual int | precision () const | 
|  | 
| virtual void | setPrecision (int prec) | 
|  | 
| virtual bool | isActive () const | 
|  | 
| virtual void | setActive (bool is_active) | 
|  | 
| virtual bool | isHidden () const | 
|  | 
| virtual void | setHidden (bool is_hidden) | 
|  | 
| virtual int | refcount () const | 
|  | 
| virtual void | ref () | 
|  | 
| virtual void | unref () | 
|  | 
| virtual void | ref (ExpressionItem *o) | 
|  | 
| virtual void | unref (ExpressionItem *o) | 
|  | 
| virtual ExpressionItem * | getReferencer (size_t index=1) const | 
|  | 
| virtual bool | changeReference (ExpressionItem *o_from, ExpressionItem *o_to) | 
|  | 
A unit consisting of a number of other units. 
Composite units are defined by a unit expression with multiple units. Composite units often have an alias unit associated with them, as they do not have a reference name on their own. For example, a joule is defined as an alias defined in relation to a composite unit defined as "Newton * meter".
The names of composite units is only used to reference the unit in definitions of other units. They can not be used in expressions.
Composite units is definited as a composition of units. The units, with prefixes and exponents, can either be added one by one with add() or parsed from an expression (ex. "cm^3/g) with setBaseExpression().