<div class="gmail_quote">On Tue, Oct 25, 2011 at 11:59 AM, Timon Gehr <span dir="ltr"><<a href="mailto:timon.gehr@gmx.ch">timon.gehr@gmx.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On 10/25/2011 06:24 PM, Andrew Wiley wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<br>
<br>
On Tue, Oct 25, 2011 at 8:06 AM, Gor Gyolchanyan<br></div><div class="im">
<<a href="mailto:gor.f.gyolchanyan@gmail.com" target="_blank">gor.f.gyolchanyan@gmail.com</a> <mailto:<a href="mailto:gor.f.gyolchanyan@gmail.com" target="_blank">gor.f.gyolchanyan@<u></u>gmail.com</a>>> wrote:<br>


<br>
    And so you can have both thread-safe synchronized heavy-duty container<br>
    and a fast and small container all in one just by overloading the<br>
    appropriate methods and adding appropriate synchronization blocks in<br>
    the shared ones.<br>
    This is one of those "little" advantages of D over C++, that make my<br>
    life _SO_ much easier.<br>
<br>
<br></div><div class="im">
Except that overloading shared and non-shared methods is not allowed.<br>
</div></blockquote>
<br>
Yes it is.<br>
<br>
struct X{<br>
    string foo(){ return "unshared"; }<br>
    string foo()shared{ return "shared"; }<br>
}<br>
<br>
void main(){<br>
    X x;<br>
    shared X y;<br>
    assert(x.foo() == "unshared");<br>
    assert(y.foo() == "shared");<br>
}<br></blockquote><div><br></div><div>Then it's been silently fixed since this was written:</div><div><a href="http://3d.benjamin-thaut.de/?p=18">http://3d.benjamin-thaut.de/?p=18</a> </div></div><br>