Sophie

Sophie

distrib > Mandriva > current > x86_64 > by-pkgid > 02354f0cc3f53bcda4b77fba3bc4135d > files > 89

lib64qalculate-devel-0.9.7-6mdv2010.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>libqalculate-0.9.7: ExpressionItem Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.5 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li class="current"><a href="classes.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>ExpressionItem Class Reference</h1><!-- doxytag: class="ExpressionItem" -->Abstract base class for functions, variables and units.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;ExpressionItem.h&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for ExpressionItem:</div>
<div class="dynsection">

<p><center><img src="classExpressionItem.png" usemap="#ExpressionItem_map" border="0" alt=""></center>
<map name="ExpressionItem_map">
<area href="classMathFunction.html" alt="MathFunction" shape="rect" coords="68,56,194,80">
<area href="classUnit.html" alt="Unit" shape="rect" coords="340,56,466,80">
<area href="classVariable.html" alt="Variable" shape="rect" coords="612,56,738,80">
<area href="classDataSet.html" alt="DataSet" shape="rect" coords="0,112,126,136">
<area href="classUserFunction.html" alt="UserFunction" shape="rect" coords="136,112,262,136">
<area href="classAliasUnit.html" alt="AliasUnit" shape="rect" coords="272,112,398,136">
<area href="classCompositeUnit.html" alt="CompositeUnit" shape="rect" coords="408,112,534,136">
<area href="classKnownVariable.html" alt="KnownVariable" shape="rect" coords="544,112,670,136">
<area href="classUnknownVariable.html" alt="UnknownVariable" shape="rect" coords="680,112,806,136">
<area href="classAliasUnit__Composite.html" alt="AliasUnit_Composite" shape="rect" coords="272,168,398,192">
<area href="classDynamicVariable.html" alt="DynamicVariable" shape="rect" coords="544,168,670,192">
</map>
</div>

<p>
<a href="classExpressionItem-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fafd17dc2bf9176b9f7c2439de0ff9d1"></a><!-- doxytag: member="ExpressionItem::ExpressionItem" ref="fafd17dc2bf9176b9f7c2439de0ff9d1" args="(string cat_, string name_, string title_=&quot;&quot;, string descr_=&quot;&quot;, bool is_local=true, bool is_builtin=false, bool is_active=true)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>ExpressionItem</b> (string cat_, string name_, string title_=&quot;&quot;, string descr_=&quot;&quot;, bool is_local=true, bool is_builtin=false, bool is_active=true)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1d7b7e3556a06f62efd63326cc0467bd"></a><!-- doxytag: member="ExpressionItem::copy" ref="1d7b7e3556a06f62efd63326cc0467bd" args="() const =0" -->
virtual <a class="el" href="classExpressionItem.html">ExpressionItem</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>copy</b> () const =0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="244f7a796e83babf256ec415491cf321"></a><!-- doxytag: member="ExpressionItem::set" ref="244f7a796e83babf256ec415491cf321" args="(const ExpressionItem *item)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set</b> (const <a class="el" href="classExpressionItem.html">ExpressionItem</a> *item)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6a6cc19272748e0c39439a7e536b0569"></a><!-- doxytag: member="ExpressionItem::destroy" ref="6a6cc19272748e0c39439a7e536b0569" args="()" -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>destroy</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0e391406c36280218d818f0975eb638d"></a><!-- doxytag: member="ExpressionItem::isRegistered" ref="0e391406c36280218d818f0975eb638d" args="() const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>isRegistered</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f15986a343f2483662754d791c35a526"></a><!-- doxytag: member="ExpressionItem::setRegistered" ref="f15986a343f2483662754d791c35a526" args="(bool is_registered)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#f15986a343f2483662754d791c35a526">setRegistered</a> (bool is_registered)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For internal use. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4f58bdf1f54914804942ad493278bdbf"></a><!-- doxytag: member="ExpressionItem::name" ref="4f58bdf1f54914804942ad493278bdbf" args="(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 &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>name</b> (bool use_unicode=false, bool(*can_display_unicode_string_function)(const char *, void *)=NULL, void *can_display_unicode_string_arg=NULL) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fe1655b46782714bc8c0a4b2cbc67faf"></a><!-- doxytag: member="ExpressionItem::referenceName" ref="fe1655b46782714bc8c0a4b2cbc67faf" args="() const " -->
virtual const string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><b>referenceName</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="structExpressionName.html">ExpressionName</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#0d1072302daaedec9deddea6713c0593">preferredName</a> (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 </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="structExpressionName.html">ExpressionName</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#a67521fb32390a531fee248a8b14f6d9">preferredInputName</a> (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 </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="structExpressionName.html">ExpressionName</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#cffe69f30f05bc81a3178fedfdbd905b">preferredDisplayName</a> (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 </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="structExpressionName.html">ExpressionName</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#7413c50d093e9358052bb2a9c35e2bab">getName</a> (size_t index) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#83e236242f8bc0f43210d8898776168d">setName</a> (const <a class="el" href="structExpressionName.html">ExpressionName</a> &amp;ename, size_t index=1, bool force=true)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#8a3656e9c691c24600afbb5a7df2c5b4">setName</a> (string sname, size_t index, bool force=true)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="90f936484afe5b0017f884a4dde38550"></a><!-- doxytag: member="ExpressionItem::addName" ref="90f936484afe5b0017f884a4dde38550" args="(const ExpressionName &amp;ename, size_t index=0, bool force=true)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>addName</b> (const <a class="el" href="structExpressionName.html">ExpressionName</a> &amp;ename, size_t index=0, bool force=true)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d38aad91eac718ef1d4a669f7a31dc10"></a><!-- doxytag: member="ExpressionItem::addName" ref="d38aad91eac718ef1d4a669f7a31dc10" args="(string sname, size_t index=0, bool force=true)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>addName</b> (string sname, size_t index=0, bool force=true)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e2713825bd55d1dc26b19a4b9ab285a9"></a><!-- doxytag: member="ExpressionItem::countNames" ref="e2713825bd55d1dc26b19a4b9ab285a9" args="() const " -->
virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>countNames</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#04e3302abecfd9d2fc7bf181304ccda4">clearNames</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#bf3cd96cea87906a752ffa973c5ccb67">clearNonReferenceNames</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5df3bf444b8650f750cde721b907441f"></a><!-- doxytag: member="ExpressionItem::removeName" ref="5df3bf444b8650f750cde721b907441f" args="(size_t index)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>removeName</b> (size_t index)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#0e9fa609612b04397d4033b37b9b3dae">hasName</a> (const string &amp;sname, bool case_sensitive=true) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#8115b59473d02c382cde0ab480dea5ed">hasNameCaseSensitive</a> (const string &amp;sname) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="structExpressionName.html">ExpressionName</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#40ab345532130cc0a7a516b7d6ac5695">findName</a> (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 </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#33187acb4804c0fba0c598b875cb10ea">title</a> (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 </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#ce1a8db6f9f16b7578a65f82b4b5f125">setTitle</a> (string title_)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#e96453b06c1a5dedd5d09004ef7478f9">description</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#62690803df131d9425eac0ce2fce249b">setDescription</a> (string descr_)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#30f21643ba083a99d48b55ec9aeb16dc">category</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#b6658cbc43ef419652e3fec4561b4638">setCategory</a> (string cat_)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#1a79171175c1cc6616911e367c8c6e19">hasChanged</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6ab6716292dd9cead48921389c3853af"></a><!-- doxytag: member="ExpressionItem::setChanged" ref="6ab6716292dd9cead48921389c3853af" args="(bool has_changed)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setChanged</b> (bool has_changed)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7d41f134d40bee67bfdb818718675b2c"></a><!-- doxytag: member="ExpressionItem::isLocal" ref="7d41f134d40bee67bfdb818718675b2c" args="() const " -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>isLocal</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="526c4bb3bcd6dbef6b606eaf77546974"></a><!-- doxytag: member="ExpressionItem::setLocal" ref="526c4bb3bcd6dbef6b606eaf77546974" args="(bool is_local=true, int will_be_active=-1)" -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>setLocal</b> (bool is_local=true, int will_be_active=-1)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="668d296cd331cf1d7fb45d767147fa04"></a><!-- doxytag: member="ExpressionItem::isBuiltin" ref="668d296cd331cf1d7fb45d767147fa04" args="() const " -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>isBuiltin</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#2eece465ffdd2cf8a24f4113f7373210">isApproximate</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d2d530d3ba75f531c07988ef4e3e09b5"></a><!-- doxytag: member="ExpressionItem::setApproximate" ref="d2d530d3ba75f531c07988ef4e3e09b5" args="(bool is_approx=true)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setApproximate</b> (bool is_approx=true)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#f3ad14ed01091e6de7a96bbd290ac024">precision</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ec5089fb96e98fcbe2454f70b3cc3a6f"></a><!-- doxytag: member="ExpressionItem::setPrecision" ref="ec5089fb96e98fcbe2454f70b3cc3a6f" args="(int prec)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setPrecision</b> (int prec)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#6644d3cfdbf78a4a03534a0481ce1784">isActive</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d3d0dc9cf2b841619101877dfb62cf4e"></a><!-- doxytag: member="ExpressionItem::setActive" ref="d3d0dc9cf2b841619101877dfb62cf4e" args="(bool is_active)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setActive</b> (bool is_active)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="abb8c659bc56f8c6e951a63545ea804d"></a><!-- doxytag: member="ExpressionItem::isHidden" ref="abb8c659bc56f8c6e951a63545ea804d" args="() const " -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>isHidden</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="30b061552bc6b7c35e18a6663ad84e3b"></a><!-- doxytag: member="ExpressionItem::setHidden" ref="30b061552bc6b7c35e18a6663ad84e3b" args="(bool is_hidden)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setHidden</b> (bool is_hidden)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#a3444de71e4474cbfa975118f6a255fc">refcount</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="281bc3c878577a46678acebdc4412d7f"></a><!-- doxytag: member="ExpressionItem::ref" ref="281bc3c878577a46678acebdc4412d7f" args="()" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>ref</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="101635ff7c212cafc93c688815cae517"></a><!-- doxytag: member="ExpressionItem::unref" ref="101635ff7c212cafc93c688815cae517" args="()" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unref</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0625ce4d2cd014f1436c596d2ccdce1d"></a><!-- doxytag: member="ExpressionItem::ref" ref="0625ce4d2cd014f1436c596d2ccdce1d" args="(ExpressionItem *o)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>ref</b> (<a class="el" href="classExpressionItem.html">ExpressionItem</a> *o)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="96a27da4e17579f6b815dd34b36fa39c"></a><!-- doxytag: member="ExpressionItem::unref" ref="96a27da4e17579f6b815dd34b36fa39c" args="(ExpressionItem *o)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unref</b> (<a class="el" href="classExpressionItem.html">ExpressionItem</a> *o)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7a3890df4218b5c70c52bfbfd2a7a06c"></a><!-- doxytag: member="ExpressionItem::getReferencer" ref="7a3890df4218b5c70c52bfbfd2a7a06c" args="(size_t index=1) const " -->
virtual <a class="el" href="classExpressionItem.html">ExpressionItem</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>getReferencer</b> (size_t index=1) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d5b3ee3894112a8c347c9327504e7dc1"></a><!-- doxytag: member="ExpressionItem::changeReference" ref="d5b3ee3894112a8c347c9327504e7dc1" args="(ExpressionItem *o_from, ExpressionItem *o_to)" -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>changeReference</b> (<a class="el" href="classExpressionItem.html">ExpressionItem</a> *o_from, <a class="el" href="classExpressionItem.html">ExpressionItem</a> *o_to)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#53cbb21250c1c8cc66c6f18a22aa69cf">type</a> () const =0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExpressionItem.html#b502d8d46b75f60b45e8bcf7dcbf655a">subtype</a> () const =0</td></tr>

<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3a00b2e70cc3af9c018bfa52944621a1"></a><!-- doxytag: member="ExpressionItem::scat" ref="3a00b2e70cc3af9c018bfa52944621a1" args="" -->
string&nbsp;</td><td class="memItemRight" valign="bottom"><b>scat</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6dfc69f036c1cbb2632343d2077b36d2"></a><!-- doxytag: member="ExpressionItem::stitle" ref="6dfc69f036c1cbb2632343d2077b36d2" args="" -->
string&nbsp;</td><td class="memItemRight" valign="bottom"><b>stitle</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5b8c425b840ff3638e03ead4e2af57f9"></a><!-- doxytag: member="ExpressionItem::sdescr" ref="5b8c425b840ff3638e03ead4e2af57f9" args="" -->
string&nbsp;</td><td class="memItemRight" valign="bottom"><b>sdescr</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b6102d315ad887247cd350473ccddae9"></a><!-- doxytag: member="ExpressionItem::b_local" ref="b6102d315ad887247cd350473ccddae9" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>b_local</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1f473d2ee8494a7859aa66f6f98e1ca0"></a><!-- doxytag: member="ExpressionItem::b_changed" ref="1f473d2ee8494a7859aa66f6f98e1ca0" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>b_changed</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="86ca08f0dada1d5ab04254402a225052"></a><!-- doxytag: member="ExpressionItem::b_builtin" ref="86ca08f0dada1d5ab04254402a225052" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>b_builtin</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b0f08b5e127605cb24fc9e32a8edc787"></a><!-- doxytag: member="ExpressionItem::b_approx" ref="b0f08b5e127605cb24fc9e32a8edc787" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>b_approx</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e0b9170cca2b5962d133acc35a5a5e8f"></a><!-- doxytag: member="ExpressionItem::b_active" ref="e0b9170cca2b5962d133acc35a5a5e8f" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>b_active</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ac9bc93ba40b1ee4127fbec38cf46560"></a><!-- doxytag: member="ExpressionItem::b_registered" ref="ac9bc93ba40b1ee4127fbec38cf46560" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>b_registered</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fd4ccf53aaa5d96094247c19630c6b51"></a><!-- doxytag: member="ExpressionItem::b_hidden" ref="fd4ccf53aaa5d96094247c19630c6b51" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>b_hidden</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4bff907a2eed41407862715aeed00a36"></a><!-- doxytag: member="ExpressionItem::b_destroyed" ref="4bff907a2eed41407862715aeed00a36" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>b_destroyed</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e1608572cd47aa9b6169fa1b56b6c72f"></a><!-- doxytag: member="ExpressionItem::i_ref" ref="e1608572cd47aa9b6169fa1b56b6c72f" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>i_ref</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6303dd514c872cac22a735b2a2ee2957"></a><!-- doxytag: member="ExpressionItem::i_precision" ref="6303dd514c872cac22a735b2a2ee2957" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>i_precision</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f75d488268ba76d55d17bc7e78ccd271"></a><!-- doxytag: member="ExpressionItem::v_refs" ref="f75d488268ba76d55d17bc7e78ccd271" args="" -->
vector&lt; <a class="el" href="classExpressionItem.html">ExpressionItem</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>v_refs</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="af04dd840d9b6c7836921a0600fc83d2"></a><!-- doxytag: member="ExpressionItem::names" ref="af04dd840d9b6c7836921a0600fc83d2" args="" -->
vector&lt; <a class="el" href="structExpressionName.html">ExpressionName</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>names</b></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Abstract base class for functions, variables and units. 
<p>
Expression items have one or more names used to reference it in mathematical expressions and display them in a result. Each name must be fully unique, with the exception that functions can have names used by other types of items (for example "min" is used as a name for the minute unit but also for a function returning smallest value in a vector).<p>
Items have an optional title and description for information to the end user. The categoy property is used to organize items, so that the end user can easily find them. Subcategories are separated by a slash, '/' (ex. "Physical Constants/Electromagnetic Constants").<p>
A local item is created/edited by the end user.<p>
A builtin item has defining properties that can/should not be edited by the user and is usually an item not loaded from the definition files.<p>
An inactive item can not be used in expressions and can share the name of an active item.<p>
The hidden propery defines if the item should be hidden from the end user.<p>
Before an item can be used in expressions, it must be added to the <a class="el" href="classCalculator.html" title="The almighty calculator class.">Calculator</a> object using CALCULATOR-&gt;addExpressionItem(). It is then said to be registered.<p>
To delete an <a class="el" href="classExpressionItem.html" title="Abstract base class for functions, variables and units.">ExpressionItem</a> object you should use destroy() to make sure that the item is removed from the <a class="el" href="classCalculator.html" title="The almighty calculator class.">Calculator</a> and does not have any referrer. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="0d1072302daaedec9deddea6713c0593"></a><!-- doxytag: member="ExpressionItem::preferredName" ref="0d1072302daaedec9deddea6713c0593" args="(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 " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structExpressionName.html">ExpressionName</a>&amp; ExpressionItem::preferredName           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>abbreviation</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>use_unicode</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>plural</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>reference</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool(*)(const char *, void *)&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_function</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_arg</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the name that best fulfils provided criterias. If two names are equally preferred, the one with lowest index is returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>abbreviation</em>&nbsp;</td><td>If an abbreviated name is preferred. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>use_unicode</em>&nbsp;</td><td>If a name with unicode characters can be displayed/is preferred (prioritized if false). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plural</em>&nbsp;</td><td>If a name in plural form is preferred. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reference</em>&nbsp;</td><td>If a reference name is preferred (ignored if false). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>can_display_unicode_string_function</em>&nbsp;</td><td>Function that tests if the unicode characters in a name can be displayed. If the function returns false, the name will be rejected. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>can_display_unicode_string_arg</em>&nbsp;</td><td><a class="el" href="classArgument.html" title="A mathematical function argument definition with free value and base class for all...">Argument</a> to pass to the above test function. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The preferred name. </dd></dl>

</div>
</div><p>
<a class="anchor" name="a67521fb32390a531fee248a8b14f6d9"></a><!-- doxytag: member="ExpressionItem::preferredInputName" ref="a67521fb32390a531fee248a8b14f6d9" args="(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 " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structExpressionName.html">ExpressionName</a>&amp; ExpressionItem::preferredInputName           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>abbreviation</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>use_unicode</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>plural</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>reference</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool(*)(const char *, void *)&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_function</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_arg</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the name that best fulfils provided criterias and is suitable for user input. If two names are equally preferred, the one with lowest index is returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>abbreviation</em>&nbsp;</td><td>If an abbreviated name is preferred. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>use_unicode</em>&nbsp;</td><td>If a name with unicode characters can be displayed/is preferred (prioritized if false). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plural</em>&nbsp;</td><td>If a name in plural form is preferred. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reference</em>&nbsp;</td><td>If a reference name is preferred (ignored if false). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>can_display_unicode_string_function</em>&nbsp;</td><td>Function that tests if the unicode characters in a name can be displayed. If the function returns false, the name will be rejected. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>can_display_unicode_string_arg</em>&nbsp;</td><td><a class="el" href="classArgument.html" title="A mathematical function argument definition with free value and base class for all...">Argument</a> to pass to the above test function. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The preferred name. </dd></dl>

</div>
</div><p>
<a class="anchor" name="cffe69f30f05bc81a3178fedfdbd905b"></a><!-- doxytag: member="ExpressionItem::preferredDisplayName" ref="cffe69f30f05bc81a3178fedfdbd905b" args="(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 " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structExpressionName.html">ExpressionName</a>&amp; ExpressionItem::preferredDisplayName           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>abbreviation</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>use_unicode</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>plural</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>reference</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool(*)(const char *, void *)&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_function</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_arg</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the name that best fulfils provided criterias and is suitable for display. If two names are equally preferred, the one with lowest index is returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>abbreviation</em>&nbsp;</td><td>If an abbreviated name is preferred. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>use_unicode</em>&nbsp;</td><td>If a name with unicode characters can be displayed/is preferred (prioritized if false). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plural</em>&nbsp;</td><td>If a name in plural form is preferred. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reference</em>&nbsp;</td><td>If a reference name is preferred (ignored if false). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>can_display_unicode_string_function</em>&nbsp;</td><td>Function that tests if the unicode characters in a name can be displayed. If the function returns false, the name will be rejected. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>can_display_unicode_string_arg</em>&nbsp;</td><td><a class="el" href="classArgument.html" title="A mathematical function argument definition with free value and base class for all...">Argument</a> to pass to the above test function. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The preferred name. </dd></dl>

</div>
</div><p>
<a class="anchor" name="7413c50d093e9358052bb2a9c35e2bab"></a><!-- doxytag: member="ExpressionItem::getName" ref="7413c50d093e9358052bb2a9c35e2bab" args="(size_t index) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structExpressionName.html">ExpressionName</a>&amp; ExpressionItem::getName           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>index</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns name for an index (starting at one). All functions can be traversed by starting at index one and increasing the index until empty_expression_name is returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of name. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Name for index or empty_expression_name if not found. </dd></dl>

</div>
</div><p>
<a class="anchor" name="83e236242f8bc0f43210d8898776168d"></a><!-- doxytag: member="ExpressionItem::setName" ref="83e236242f8bc0f43210d8898776168d" args="(const ExpressionName &amp;ename, size_t index=1, bool force=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ExpressionItem::setName           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structExpressionName.html">ExpressionName</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>ename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>index</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>force</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Changes a name. If a name for the provided index is not present, it is added (equivalent to addName(ename, index, force)).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ename</em>&nbsp;</td><td>The new name. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of name to change. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>force</em>&nbsp;</td><td>If true, expression items with conflicting names are replaced, otherwise . Only applies if the item is registered. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="8a3656e9c691c24600afbb5a7df2c5b4"></a><!-- doxytag: member="ExpressionItem::setName" ref="8a3656e9c691c24600afbb5a7df2c5b4" args="(string sname, size_t index, bool force=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ExpressionItem::setName           </td>
          <td>(</td>
          <td class="paramtype">string&nbsp;</td>
          <td class="paramname"> <em>sname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>force</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Changes the text string of a name. If a name for the provided index is not present, it is added (equivalent to addName(sname, index, force)).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sname</em>&nbsp;</td><td>The new name text string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of name to change. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>force</em>&nbsp;</td><td>If true, expression items with conflicting names are replaced, otherwise . Only applies if the item is registered. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="04e3302abecfd9d2fc7bf181304ccda4"></a><!-- doxytag: member="ExpressionItem::clearNames" ref="04e3302abecfd9d2fc7bf181304ccda4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ExpressionItem::clearNames           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes all names. 
</div>
</div><p>
<a class="anchor" name="bf3cd96cea87906a752ffa973c5ccb67"></a><!-- doxytag: member="ExpressionItem::clearNonReferenceNames" ref="bf3cd96cea87906a752ffa973c5ccb67" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ExpressionItem::clearNonReferenceNames           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes all names that are not used for reference (<a class="el" href="structExpressionName.html#89af7d9b82d81e819144e162053fe3f6" title="If the name shall be used as a fixed reference. If this is set to true, the name...">ExpressionName.reference</a> = true). 
</div>
</div><p>
<a class="anchor" name="0e9fa609612b04397d4033b37b9b3dae"></a><!-- doxytag: member="ExpressionItem::hasName" ref="0e9fa609612b04397d4033b37b9b3dae" args="(const string &amp;sname, bool case_sensitive=true) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t ExpressionItem::hasName           </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&nbsp;</td>
          <td class="paramname"> <em>sname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>case_sensitive</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the expression item has a name with a specific text string.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sname</em>&nbsp;</td><td>A text string to look for (not case sensitive) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>case_sensitive</em>&nbsp;</td><td>If the name is case sensitive. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Index of the name with the given text string or zero if such a name was not found. </dd></dl>

</div>
</div><p>
<a class="anchor" name="8115b59473d02c382cde0ab480dea5ed"></a><!-- doxytag: member="ExpressionItem::hasNameCaseSensitive" ref="8115b59473d02c382cde0ab480dea5ed" args="(const string &amp;sname) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t ExpressionItem::hasNameCaseSensitive           </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&nbsp;</td>
          <td class="paramname"> <em>sname</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if the expression item has a name with a specific case sensitive text string.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sname</em>&nbsp;</td><td>A text string to look for (case sensitive) </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Index of the name with the given text string or zero if such a name was not found. </dd></dl>

</div>
</div><p>
<a class="anchor" name="40ab345532130cc0a7a516b7d6ac5695"></a><!-- doxytag: member="ExpressionItem::findName" ref="40ab345532130cc0a7a516b7d6ac5695" args="(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 " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structExpressionName.html">ExpressionName</a>&amp; ExpressionItem::findName           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>abbreviation</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>use_unicode</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>plural</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool(*)(const char *, void *)&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_function</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_arg</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Searches for a name with specific properties.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>abbreviation</em>&nbsp;</td><td>If the name must be abbreviated. 1=true, 0=false, -1=ignore. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>use_unicode</em>&nbsp;</td><td>If the name must have unicode characters. 1=true, 0=false, -1=ignore. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plural</em>&nbsp;</td><td>If the name must be in plural form. 1=true, 0=false, -1=ignore. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>can_display_unicode_string_function</em>&nbsp;</td><td>Function that tests if the unicode characters in a name can be displayed. If the function returns false, the name will be rejected. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>can_display_unicode_string_arg</em>&nbsp;</td><td><a class="el" href="classArgument.html" title="A mathematical function argument definition with free value and base class for all...">Argument</a> to pass to the above test function. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The first found name with the specified properties or empty_expression_name if none found. </dd></dl>

</div>
</div><p>
<a class="anchor" name="33187acb4804c0fba0c598b875cb10ea"></a><!-- doxytag: member="ExpressionItem::title" ref="33187acb4804c0fba0c598b875cb10ea" args="(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 " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const string&amp; ExpressionItem::title           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>return_name_if_no_title</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>use_unicode</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool(*)(const char *, void *)&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_function</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>can_display_unicode_string_arg</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the title, descriptive name, of the item.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>return_name_if_no_title</em>&nbsp;</td><td>If true, a name is returned if the title string is empty (using preferredName(false, use_unicode, false, false, can_display_unicode_string_function, can_display_unicode_string_arg)). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>use_unicode</em>&nbsp;</td><td>If a name with unicode characters can be displayed/is preferred (passed to <a class="el" href="classExpressionItem.html#0d1072302daaedec9deddea6713c0593">preferredName()</a>). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>can_display_unicode_string_function</em>&nbsp;</td><td>Function that tests if the unicode characters in a name can be displayed. If the function returns false, the name will be rejected (passed to <a class="el" href="classExpressionItem.html#0d1072302daaedec9deddea6713c0593">preferredName()</a>). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>can_display_unicode_string_arg</em>&nbsp;</td><td><a class="el" href="classArgument.html" title="A mathematical function argument definition with free value and base class for all...">Argument</a> to pass to the above test function (passed to <a class="el" href="classExpressionItem.html#0d1072302daaedec9deddea6713c0593">preferredName()</a>). </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Item title. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ce1a8db6f9f16b7578a65f82b4b5f125"></a><!-- doxytag: member="ExpressionItem::setTitle" ref="ce1a8db6f9f16b7578a65f82b4b5f125" args="(string title_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ExpressionItem::setTitle           </td>
          <td>(</td>
          <td class="paramtype">string&nbsp;</td>
          <td class="paramname"> <em>title_</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the title, descriptive name, of the item. The title can not be used in expressions.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>title_</em>&nbsp;</td><td>The new title. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="e96453b06c1a5dedd5d09004ef7478f9"></a><!-- doxytag: member="ExpressionItem::description" ref="e96453b06c1a5dedd5d09004ef7478f9" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const string&amp; ExpressionItem::description           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the expression items description.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Description. </dd></dl>

</div>
</div><p>
<a class="anchor" name="62690803df131d9425eac0ce2fce249b"></a><!-- doxytag: member="ExpressionItem::setDescription" ref="62690803df131d9425eac0ce2fce249b" args="(string descr_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ExpressionItem::setDescription           </td>
          <td>(</td>
          <td class="paramtype">string&nbsp;</td>
          <td class="paramname"> <em>descr_</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the expression items description.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>descr_</em>&nbsp;</td><td>Description. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="30f21643ba083a99d48b55ec9aeb16dc"></a><!-- doxytag: member="ExpressionItem::category" ref="30f21643ba083a99d48b55ec9aeb16dc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const string&amp; ExpressionItem::category           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the category that the expression item belongs to. Subcategories are separated by '/'.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Category. </dd></dl>

</div>
</div><p>
<a class="anchor" name="b6658cbc43ef419652e3fec4561b4638"></a><!-- doxytag: member="ExpressionItem::setCategory" ref="b6658cbc43ef419652e3fec4561b4638" args="(string cat_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ExpressionItem::setCategory           </td>
          <td>(</td>
          <td class="paramtype">string&nbsp;</td>
          <td class="paramname"> <em>cat_</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets which category the expression belongs to. Subcategories are separated by '/'.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cat_</em>&nbsp;</td><td>Category. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="1a79171175c1cc6616911e367c8c6e19"></a><!-- doxytag: member="ExpressionItem::hasChanged" ref="1a79171175c1cc6616911e367c8c6e19" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool ExpressionItem::hasChanged           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If the object has been changed since it was created/loaded. 
</div>
</div><p>
<a class="anchor" name="2eece465ffdd2cf8a24f4113f7373210"></a><!-- doxytag: member="ExpressionItem::isApproximate" ref="2eece465ffdd2cf8a24f4113f7373210" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool ExpressionItem::isApproximate           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If the item is approximate or exact. Note that an actual value associated with the item might have a have a lower precision. For, for example, a mathematical function this defines the precision of the formula, not the result.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if the item is approximate </dd></dl>

</div>
</div><p>
<a class="anchor" name="f3ad14ed01091e6de7a96bbd290ac024"></a><!-- doxytag: member="ExpressionItem::precision" ref="f3ad14ed01091e6de7a96bbd290ac024" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int ExpressionItem::precision           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns precision of the item, if it is approximate. Note that an actual value associated with the item might have a have a lower precision. For, for example, a mathematical function this defines the precision of the formula, not the result. 
</div>
</div><p>
<a class="anchor" name="6644d3cfdbf78a4a03534a0481ce1784"></a><!-- doxytag: member="ExpressionItem::isActive" ref="6644d3cfdbf78a4a03534a0481ce1784" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool ExpressionItem::isActive           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns if the expression item is active and can be used in expressions.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if active. </dd></dl>

</div>
</div><p>
<a class="anchor" name="a3444de71e4474cbfa975118f6a255fc"></a><!-- doxytag: member="ExpressionItem::refcount" ref="a3444de71e4474cbfa975118f6a255fc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int ExpressionItem::refcount           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The reference count is not used to delete the expression item when it becomes zero, but to stop from being deleted while it is in use. 
</div>
</div><p>
<a class="anchor" name="53cbb21250c1c8cc66c6f18a22aa69cf"></a><!-- doxytag: member="ExpressionItem::type" ref="53cbb21250c1c8cc66c6f18a22aa69cf" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int ExpressionItem::type           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the type of the expression item, corresponding to which subclass the object belongs to.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><a class="el" href="includes_8h.html#05f1c0afe6f10792534dbd98fbb7541f" title="Type of ExpressionItem.">ExpressionItemType</a>. </dd></dl>

<p>Implemented in <a class="el" href="classMathFunction.html#5fcfee2c68c2b6bc6c762b6a103ce96a">MathFunction</a>, <a class="el" href="classUnit.html#b4e6ad8f83717457393724621a52a11e">Unit</a>, and <a class="el" href="classVariable.html#5b91a013e6873f658e25da59f08d8991">Variable</a>.</p>

</div>
</div><p>
<a class="anchor" name="b502d8d46b75f60b45e8bcf7dcbf655a"></a><!-- doxytag: member="ExpressionItem::subtype" ref="b502d8d46b75f60b45e8bcf7dcbf655a" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int ExpressionItem::subtype           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the subtype of the expression item, corresponding to which subsubclass the object belongs to.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Subtype/subsubclass. </dd></dl>

<p>Implemented in <a class="el" href="classDataSet.html#f4c05ff6105adc16f4658d4dc3c7e0bb">DataSet</a>, <a class="el" href="classMathFunction.html#1173ab198af529b3a13e7c8ef01d6d1f">MathFunction</a>, <a class="el" href="classUserFunction.html#bc53125233703260602bfcb4c3ffb7a5">UserFunction</a>, <a class="el" href="classUnit.html#d9f4f05c29ed947195274abc7d9a39a3">Unit</a>, <a class="el" href="classAliasUnit.html#05402283a80a32786c2ef9d999ef4285">AliasUnit</a>, <a class="el" href="classCompositeUnit.html#12eb9a85f6e2994afa64ef037037f4f9">CompositeUnit</a>, <a class="el" href="classVariable.html#3e6d81fe2467b8627b09af909e835742">Variable</a>, <a class="el" href="classUnknownVariable.html#946ed345fa92c88eb05395bf37542855">UnknownVariable</a>, and <a class="el" href="classKnownVariable.html#dbccee6770fa72d8074e70337871cc5b">KnownVariable</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>libqalculate/<a class="el" href="ExpressionItem_8h.html">ExpressionItem.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jan 5 08:26:29 2010 for libqalculate-0.9.7 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>