digitalmars.D.bugs - [Issue 1123] New: We can change Struct.init
- d-bugmail puremagic.com (38/38) Apr 11 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1123
- d-bugmail puremagic.com (11/11) Apr 25 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1123
- d-bugmail puremagic.com (25/25) Jan 29 2012 http://d.puremagic.com/issues/show_bug.cgi?id=1123
http://d.puremagic.com/issues/show_bug.cgi?id=1123
Summary: We can change Struct.init
Product: D
Version: unspecified
Platform: PC
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla digitalmars.com
ReportedBy: s180m yahoo.co.jp
struct Matrix {
double e = 1.;
Matrix scale(double r){e*=r;return *this;}
const Matrix Identity = {10.};
}
void main(){
for(int i;i<5;i++){
printf("%f\n",Matrix.Identity.scale(.9).e);
}
printf("\n");
for(int i;i<5;i++){
printf("%f\n",Matrix.init.scale(.9).e);
}
}
-----------------
9.000000
8.100000
7.290000
6.561000
5.904900
0.900000
0.810000
0.729000
0.656100
0.590490
--
Apr 11 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1123
thomas-dloop kuehne.cn changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|We can change Struct.init |We can change Struct.init
That is again a case where the compiler didn't put unchangeable content
(Identitiy and init) readonly section but read-write section. On Linux "init"
is in a readonly section and thus the second loop segfaults.
It would be nice if the compiler enforced/checked read-write rights.
--
Apr 25 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1123
yebblies <yebblies gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |yebblies gmail.com
Platform|x86 |All
Resolution| |WORKSFORME
OS/Version|Windows |All
Currently both D1 and D2 (1.068 & 2.058) compilers print:
9.000000
9.000000
9.000000
9.000000
9.000000
0.900000
0.900000
0.900000
0.900000
0.900000
As .init creates a temporary this is correct.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 29 2012









d-bugmail puremagic.com 