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: [email protected]
ReportedBy: [email protected]
--- Comment #0 from Iain Buclaw <[email protected]> 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: -------