[Issue 11874] New: __traits(isPOD) does not check base elem of static arrays
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Jan 6 02:33:54 PST 2014
https://d.puremagic.com/issues/show_bug.cgi?id=11874
Summary: __traits(isPOD) does not check base elem of static
arrays
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: ibuclaw at ubuntu.com
--- Comment #0 from Iain Buclaw <ibuclaw at ubuntu.com> 2014-01-06 02:33:52 PST ---
Consider the following:
---
struct CpCtor { this(this) {} }
struct NonPod { CpCtor[4] cpctor; }
/* CpCtor defines a copy construct -> is not POD. */
static assert(!__traits(isPOD, CpCtor));
/* NonPod has a static array of CpCtor in it field list,
so user-defined copy semantics apply -> is not POD. */
static assert(!__traits(isPOD, NonPod));
/* However, a static array of a non-POD type does not trigger __traits(isPOD).
This seems contrary to the behaviour of above. */
static assert(!__traits(isPOD, CpCtor[4])); // fails
static assert(!__traits(isPOD, NonPod[4])); // fails
--
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list