[Issue 3539] New: Template instantiation fails in an obscured way. See details.
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Nov 21 14:44:07 PST 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3539
Summary: Template instantiation fails in an obscured way. See
details.
Product: D
Version: 2.036
Platform: x86
OS/Version: Linux
Status: NEW
Severity: blocker
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: e.insafutdinov at gmail.com
--- Comment #0 from Eldar Insafutdinov <e.insafutdinov at gmail.com> 2009-11-21 14:44:06 PST ---
Test case:
void boo(T)(T* ptr, const ref T t)
{
static if (__traits(compiles, ptr.__postblit()))
{}
}
void main()
{
double b;
const double a = b;
double* ptr;
boo!double(ptr, a);
}
Commenting out static if (...) line makes it work. Or otherwise if you call boo
with non-const argument(b) it works too.
This one is a blocker for QtD. Basically I need the way, to allocate a copy of
a value on the C heap. In order to do that I allocate the memory chunk with
malloc, then call memcpy() and then, if the value type has postblit I call it.
This bugs prevents me to implement this.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list