<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-08-04 21:31 GMT+03:00 Dave Abrahams <span dir="ltr">&lt;<a href="mailto:dabrahams@apple.com" target="_blank">dabrahams@apple.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
on Thu Aug 04 2016, Anton Zhilin &lt;antonyzhilin-AT-gmail.com&gt; wrote:<br>
&gt; Two weeks ago Adrian and I suggested adding dynamic &#39;size&#39;, &#39;stride&#39;,<br>
&gt; &#39;alignment&#39; to Mirror, which definition would look like:<br>
&gt;<br>
&gt; public struct ReflectionWrapper {  // fixed!<br>
&gt;     internal metatype_: Any.Type<br>
&gt;<br>
&gt;     public init&lt;T&gt;(_: T.Type)<br>
&gt;<br>
&gt;     public var size: Int { get }<br>
&gt;     public var stride: Int { get }<br>
&gt;     public var align: Int { get }<br>
&gt;<br>
&gt;     // ...<br>
&gt; }<br>
&gt;<br>
&gt; There are some problems with it right now, but I do believe that reflection<br>
&gt; API is where dynamic `size`, `stride`, `alignment` belong.<br>
<br>
</div></div>I see your point, but that would unfortunately be an unacceptably<br>
expensive way to get that information.  Constructing a mirror is a<br>
nontrivial bit of work.</blockquote><div><br></div><div>I don&#39;t mean current heavyweight Mirror. Call that type ReflectionWrapper, if you want. It would only contain &#39;Any.Type&#39; stored property.</div><div>Largest of &#39;problems&#39; that I meant is that reflection is postponed, and my type would look odd without full reflection capabilities (only with &#39;size&#39; and friends).</div></div></div></div>