<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Benito van der Zander via fpc-pascal <<a href="mailto:fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a>> schrieb am Mo., 11. Jan. 2021, 15:26:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div>
    <div id="m_926231055581021927smartTemplate4-template">Hi,</div>
    <div><br>
    </div>
    <div>perhaps a  safe, generic function for this copying could be
      added to the RTL. Like:<br>
    </div>
    <div><br>
    </div>
    <div> Procedure ManagedMove<T>(const source: T;var dest:
      T;count: SizeInt);</div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">In principle a good idea. However this is one of those cases where you'd definitely need to use constref instead of const.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
    <div>And when you use IsManagedType, it does not distinguish
        standard strings with such weird managed types.<br></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">You can additionally use GetTypeKind as well. Unlike TypeInfo it directly returns the TTypeKind (which for this case is enough) and is considered constant. </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div><div>
      <p>And perhaps there could be a special attribute to mark which
        kind of moving is needed, e.g..<br>
      </p>
        type [moveable] TA = record<br>
      <div>
        <div> </div>
      </div>
        type [referencecounted] TA = record</div>
    <div>   type [nonmoveable] TA = record<br></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">No, thank you.</div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div></div>