<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to keywords-static</title><link>https://sourceforge.net/p/asil/wiki/keywords-static/</link><description>Recent changes to keywords-static</description><atom:link href="https://sourceforge.net/p/asil/wiki/keywords-static/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 20 Feb 2014 21:07:51 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/asil/wiki/keywords-static/feed" rel="self" type="application/rss+xml"/><item><title>keywords-static modified by Will Pittenger</title><link>https://sourceforge.net/p/asil/wiki/keywords-static/</link><description>&lt;div class="markdown_content"&gt;&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#overview"&gt;Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#type-declarations"&gt;Type declarations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#method-data-member-and-property-declarations"&gt;Method, data member, and property declarations&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#data-members"&gt;Data members&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#commands"&gt;Commands&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#functions"&gt;Functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#complex-statements"&gt;Complex statements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#properties"&gt;Properties&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h1 id="overview"&gt;Overview&lt;/h1&gt;
&lt;p&gt;When applied to a method, data member, or property; causes that method, data member, or property to be independent of any specific instance of the enclosing type.  Methods and properties that are &lt;strong&gt;static&lt;/strong&gt; can't use the &lt;strong&gt;&lt;a class="" href="../keywords-self"&gt;self&lt;/a&gt;&lt;/strong&gt; keyword.  Methods, data members, and properties that are &lt;strong&gt;static&lt;/strong&gt; can be accessed with "&lt;code&gt;/TypeName/./MemberMethodOrPropertyIdentifier/&lt;/code&gt;".  No &lt;strong&gt;&lt;a class="" href="../keywords-typecast"&gt;typecast&lt;/a&gt;&lt;/strong&gt; may be declared as &lt;strong&gt;static&lt;/strong&gt;.  All &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-operator/"&gt;operator&lt;/a&gt;&lt;/strong&gt; procedures are implicitly &lt;strong&gt;static&lt;/strong&gt;.  Nested types declared with the &lt;strong&gt;&lt;a class="" href="../keyword-inner"&gt;inner&lt;/a&gt;&lt;/strong&gt; keyword may not be declared as &lt;strong&gt;static&lt;/strong&gt;.  While a &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-property/"&gt;property&lt;/a&gt;&lt;/strong&gt; can be &lt;strong&gt;static&lt;/strong&gt;, &lt;strong&gt;static&lt;/strong&gt; can't be explicitly applied to the &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-get/"&gt;get&lt;/a&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-set/"&gt;set&lt;/a&gt;&lt;/strong&gt; accessors for that property.  Constant members declared with the &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-const/"&gt;const&lt;/a&gt;&lt;/strong&gt; keyword, but not the &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-var/"&gt;var&lt;/a&gt;&lt;/strong&gt; keyword, are implicitly &lt;strong&gt;static&lt;/strong&gt;.  No procedure or property declared as &lt;strong&gt;static&lt;/strong&gt; may also be &lt;strong&gt;&lt;a class="" href="../keywords-virtual"&gt;virtual&lt;/a&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-abstract/"&gt;abstract&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When applied to the declaration of a &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-class/"&gt;class&lt;/a&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-structure/"&gt;structure&lt;/a&gt;&lt;/strong&gt; causes all data members, methods, and properties of that type to be implicitly &lt;strong&gt;static&lt;/strong&gt;.  No type of &lt;strong&gt;&lt;a class="" href="../keyword-enum"&gt;enum&lt;/a&gt;&lt;/strong&gt;, even structure-based enums, can be declared as &lt;strong&gt;static&lt;/strong&gt;.  No type of &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-interface/"&gt;interface&lt;/a&gt;&lt;/strong&gt; can be declared as &lt;strong&gt;static&lt;/strong&gt;.&lt;/p&gt;
&lt;h1 id="type-declarations"&gt;Type declarations&lt;/h1&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;[\static\] [\const\] (\class\ | \structure\) /identifier/
    {[\extends\ /BaseTypeList/] |
    [\implements\ /InterfaceList]}
  ' The rest of the declaration goes here
&lt;/pre&gt;&lt;/div&gt;
&lt;h1 id="method-data-member-and-property-declarations"&gt;Method, data member, and property declarations&lt;/h1&gt;
&lt;h2 id="data-members"&gt;Data members&lt;/h2&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;(\public\ | \protected\ | \private\) {\var\ [\const\]} [\readonly\] [\static\] [(\ref\ | \byvalue\)] /TypeDescriptor/ /identifier/ [\=\ /DefaultValue/]
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For more on what /TypeDescriptor/ can be, see &lt;a class="" href="../Appendices-Terms-Type%20descriptors"&gt;Type descriptors&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="commands"&gt;Commands&lt;/h2&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;(\public\ | \protected\ | \private\) (\virtual\ | \abstract\ | \final\) [\const\] [\static\] \command\ /identifier/ [/DeclarationSequence/]
    [\throws\ /ExceptionList/]
  ' Implement the command
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For more on what /DeclarationSequence/ can be, see &lt;a class="" href="../Appendices-Terms-Declaration%20sequences"&gt;Declaration sequences&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="functions"&gt;Functions&lt;/h2&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;(\public\ | \protected\ | \private\) (\virtual\ | \abstract\ | \final\) [\const\] [\static\] \function\ /identifier/ [/DeclarationSequence/]
    {\returns\ /TypeDescriptor/ |
    [\throws\ /ExceptionList/]}
  ' Implement the function
&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="complex-statements"&gt;Complex statements&lt;/h2&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;(\public\ | \protected\ | \private\) (\virtual\ | \abstract\ | \final\) [\const\] [\static\] \statement\ /identifier/ [/DeclarationSequence/]
    {\instructions\ /TypeDescriptorList/ |
    [\throws\ /ExceptionList/]}
  ' Implement the function
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For more on what /TypeDescriptorList/ can be, see the section &lt;a class="alink" href="/p/asil/wiki/Complex%20statements/"&gt;[Complex statements]&lt;/a&gt; and the keyword &lt;strong&gt;&lt;a class="" href="/p/asil/wiki/keywords-instructions/"&gt;instructions&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="properties"&gt;Properties&lt;/h2&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;(\public\ | \protected\ | \private\) (\virtual\ | \abstract\ | \final\) [\const\] [\static\] \property\ /TypeDescriptor/ /identifier/ [\[\/DeclarationSequence/\]\]
  [(\protected\ | \private\) (\virtual\ | \abstract\ | \final\) \get\
    ' Implement the accessor
  ]

  [(\protected\ | \private\) (\virtual\ | \abstract\ | \final\) \set\
    ' Implement the accessor
  ]
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Will Pittenger</dc:creator><pubDate>Thu, 20 Feb 2014 21:07:51 -0000</pubDate><guid>https://sourceforge.net8652e4dff8cde733c1990f7fa5cb075f24011c81</guid></item></channel></rss>