<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-08-12 19:17 GMT+02:00 silvioprog <span dir="ltr"><<a href="mailto:silvioprog@gmail.com" target="_blank">silvioprog@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><p dir="ltr">Those hints can be a problem when we also need to check the log from other classes, because it pollute the windows messages, so a suggestion is just to declare the "{$WARN 5024 OFF : Parameter "$1" not used}" in the rtl-generics units.<br></p></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><p dir="ltr">The question is regarding to TDictionary, because I'm not sure if it is a concrete class on its actual implementation stage (I'm using FPC from trunk). See the warnings below:</p>
<p dir="ltr">=== begin warns ===</p>
<p dir="ltr">generics.dictionaries.inc(158,<wbr>92) Warning: Constructing a class "TCustomDictionaryEnumerator$4<wbr>$crc7DF95A99" with abstract method "DoMoveNext"<br>
generics.dictionaries.inc(158,<wbr>92) Warning: Constructing a class "TCustomDictionaryEnumerator$4<wbr>$crc7DF95A99" with abstract method "GetCurrent"<br>
generics.dictionaries.inc(158,<wbr>92) Warning: Constructing a class "TCustomDictionaryEnumerator$4<wbr>$crc7DF95A99" with abstract method "DoMoveNext"<br>
generics.dictionaries.inc(158,<wbr>92) Warning: Constructing a class "TCustomDictionaryEnumerator$4<wbr>$crc7DF95A99" with abstract method "GetCurrent"</p>
<p dir="ltr">=== end warns ===</p></blockquote><div><br></div><div>Using WARN OFF for whole module is rather bad, but might be (temporary) the only solution. IIRC FPC has many bugs for switching off warnings / hints especially for generics. Compiler likes to report warnings/hints in specialization place/module (which each of reported warnings was disabled in structure declaration).<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<p dir="ltr">I want to use the TDictionary in a beta project, but I'm not sure if today it is only for experimental purposes. :-/</p></blockquote><div><div>TDictionary is very stable and well tested. Feel free to use that structure it definitely should stay without many modifications (generally public interface is stable - compatibility with Delphi). </div><div><br></div><div>the only candidate to remove is :</div><div><br></div><div>procedure GetMemoryLayout(const AOnGetMemoryLayoutKeyPosition: TOnGetMemoryLayoutKeyPosition);</div><div><br></div><div>which was used only for testing purposes, thanks to GetMemoryLayout you can see how looks memory layout for each kind of dictionary (we have many memory layouts, even more - we have unique de-amortized cuckoo hashing - <a href="http://arxiv.org/abs/0903.0391">http://arxiv.org/abs/0903.0391</a> declared as THashMap/TFastHashMap).<br></div><div><br></div></div></div>-- <br><div data-smartmail="gmail_signature"><div dir="ltr"><div>Best regards,<br>Maciej Izak</div></div></div>
</div></div>