<div dir="ltr"><div><div>Hi Ian,<br><br>Possibly it's because of the different stdlib (clang in Linux requires gcc, but on Mac maybe it uses other stdlib<br>implementation), but I'm not sure about Mac. Is it possible to treat these errors as warnings?<br><br></div>In the point.hpp the thing I did is just implemented a class Point that consists from two coordinates and a hash function to store it in std::unordered_*. Therefore please be free to change and don't fear about breaking logic :).<br><br></div>Cheers,<br><div><div><br clear="all"><div><div class="gmail_extra"><div><div class="gmail_signature"><div dir="ltr">Minh<br></div></div></div>
<br><div class="gmail_quote">On 9 April 2015 at 12:25, Ian Wadham <span dir="ltr"><<a href="mailto:iandw.au@gmail.com" target="_blank">iandw.au@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Minh,<br>
<span class=""><br>
On 06/04/2015, at 11:30 PM, Minh Ngo wrote:<br>
> Here is the patch. Checked with clang 3.5.0, qt 4.8.6, KDE Development Platform 4.14.6<br>
<br>
</span>Thanks very much for the patch, Minh.  I tried it, but unfortunately<br>
the same errors persisted.<br>
<span class=""><br>
> In file included from /kdedev/kde4m/kdesrc/kde/kdegames/kdots/point.cpp:26:<br>
> /kdedev/kde4m/kdesrc/kde/kdegames/kdots/point.hpp:78:10: error: explicit<br>
>       specialization of non-template struct 'hash'<br>
>   struct hash<KDots::Point><br>
>          ^   ~~~~~~~~~~~~~~<br>
> /kdedev/kde4m/kdesrc/kde/kdegames/kdots/point.cpp:123:19: error: expected ';'<br>
>       after top level declarator<br>
>   std::size_t hash<KDots::Point>::operator()(const KDots::Point& s) const<br>
>                   ^<br>
>                   ;<br>
> 2 errors generated.<br>
<br>
</span>I have not had time to investigate further in the last two days.  Maybe tomorrow.<br>
<br>
Possibly the Clang compiler is picking up the wrong stdlib from somewhere or<br>
maybe Clang does not like the mix of namespace and template features in this<br>
particular code.  Can it be paraphrased and simplified in some way?<br>
<br>
It is similar to the final coding example in <a href="http://en.cppreference.com/w/cpp/utility/hash" target="_blank">http://en.cppreference.com/w/cpp/utility/hash</a>,<br>
so it ought to compile OK, but it is not exactly the same.  I might try modifying point.hpp<br>
to be textually and syntactically more like the example, without changing semantics.<br>
<br>
Another possibility is for me to try MacPorts' (Open Source) Clang, rather than Apple's,<br>
but I use Apple's Clang successfully for all other code.  Or I might be able to revert to<br>
MacPorts' gcc.<br>
<br>
Cheers, Ian W.<br>
<br>
</blockquote></div><br></div></div></div></div></div>