<?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-inner</title><link>https://sourceforge.net/p/asil/wiki/keywords-inner/</link><description>Recent changes to keywords-inner</description><atom:link href="https://sourceforge.net/p/asil/wiki/keywords-inner/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 19 Feb 2014 13:22:36 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/asil/wiki/keywords-inner/feed" rel="self" type="application/rss+xml"/><item><title>keywords-inner modified by Will Pittenger</title><link>https://sourceforge.net/p/asil/wiki/keywords-inner/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;ASIL nested types come in two forms: normal and &lt;strong&gt;inner&lt;/strong&gt;.  If you just declare a nested type, it has access to &lt;strong&gt;&lt;a class="" href="../keywords-public"&gt;public&lt;/a&gt;&lt;/strong&gt; &lt;strong&gt;&lt;a class="" href="../keywords-static"&gt;static&lt;/a&gt;&lt;/strong&gt; members, &lt;strong&gt;&lt;a class="" href="../keywords-public"&gt;public&lt;/a&gt;&lt;/strong&gt; &lt;strong&gt;&lt;a class="" href="../keywords-static"&gt;static&lt;/a&gt;&lt;/strong&gt; methods, &lt;strong&gt;&lt;a class="" href="../keywords-public"&gt;public&lt;/a&gt;&lt;/strong&gt; &lt;strong&gt;&lt;a class="" href="../keywords-static"&gt;static&lt;/a&gt;&lt;/strong&gt; properties, and &lt;strong&gt;&lt;a class="" href="../keywords-public"&gt;public&lt;/a&gt;&lt;/strong&gt; nested types of the enclosing type only.  Access to &lt;strong&gt;&lt;a class="" href="../keywords-protected"&gt;protected&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a class="" href="../keywords-private"&gt;private&lt;/a&gt;&lt;/strong&gt; data members, methods, properties, or nested types isn't allowed.  Instances of the nested type aren't associated with any instance of the enclosing type at all.&lt;/p&gt;
&lt;p&gt;On the other hand, if you add the &lt;strong&gt;inner&lt;/strong&gt; keyword to the declaration of the nested type, each instance of the nested type must be associated with an instance of the enclosing type.  The closest equivalent would be non-static inner classes in Java.  (Don't confuse Java's term "inner class" with the ASIL &lt;strong&gt;inner&lt;/strong&gt; keyword.)  &lt;strong&gt;inner&lt;/strong&gt; nested types have access to all static data members, methods, properties, and nested types of the regardless of the access qualifier.  Instances of &lt;strong&gt;inner&lt;/strong&gt; nested types have access to all instance data members, methods, properties regardless of the access qualifier.  Inner types can be &lt;strong&gt;&lt;a class="" href="../keywords-static"&gt;static&lt;/a&gt;&lt;/strong&gt; when required.  That causes the type to have access to &lt;strong&gt;&lt;a class="" href="../keywords-protected"&gt;protected&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a class="" href="../keywords-private"&gt;private&lt;/a&gt;&lt;/strong&gt; static data members, methods, properties, and nested types.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;(\public\ | \protected\ | \private\) {[(\abstract\ | \final\)] | [\inner\] | [\const\] | [\static\]} (\class\ | \struct\) /identifier/
  ' Rest of type declaration
&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>Wed, 19 Feb 2014 13:22:36 -0000</pubDate><guid>https://sourceforge.net9ea7e049d580d7c017ea2aa27aa670773e9c36d9</guid></item></channel></rss>