const overload
Steven Schveighoffer
schveiguy at yahoo.com
Fri Sep 23 13:44:52 PDT 2011
On Fri, 23 Sep 2011 16:35:59 -0400, so <so at so.so> wrote:
> On Fri, 23 Sep 2011 23:27:02 +0300, Jonathan M Davis
> <jmdavisProg at gmx.com> wrote:
>
>> On Friday, September 23, 2011 23:19:15 so wrote:
>>> Hello everyone.
>>>
>>> I asked this a few times with no response.
>>> Could anyone explain me what is the rational behind this?
>>> Why it won't distinguish mutable overload from immutable as in C++?
>>
>> That compiles fine with the lastest dmd from git. Is it not compiling
>> with the
>> latest release (dmd 2.055)?
>>
>> - Jonathan M Davis
>
> It compiles fine but the result troubling, wouldn't you expect:
>
> fun
> fun const
>
> as a result? This is how it works in C++.
steves at steve-laptop:~/testd$ cat testconst.cpp
#include <iostream>
using namespace std;
struct S {
S& fun() {
cout << "fun" << endl;
return *this;
}
S fun() const {
cout << "fun const" << endl;
return S();
}
};
int main() {
S a;
a.fun() = a.fun();
return 0;
}
steves at steve-laptop:~/testd$ g++ -o testconst testconst.cpp
steves at steve-laptop:~/testd$ ./testconst
fun
fun
steves at steve-laptop:~/testd$
Seems, um to be the same, no?
-Steve
More information about the Digitalmars-d-learn
mailing list