Not.
The only way to set an element that refers to something is through a constructor declared by the user, so your structure is not a POD.
Update:
The answer is still no.
The C ++ 03 standard states that "POD-struct is an aggregate class that does not have non-static data members such as non-POD-struct, non-POD-union (or an array of such types) or references, and ..." (C ++ 03 standard, section 9, paragraph 5).
In C ++ 11, a POD-struct "is a class that is both a trivial class and a standard layout class and ...", and the standard layout class "does not contain non-static data (or an array of such types) or a link" ( C ++ 11 standard, clause 9, clause 6-9).
I am parsing those phrases that end with the words “or link” to immediately mean that the POD class cannot contain non-static data elements that have any reference type. The absence of a comma before “or link” gives way to other interpretations (for example, this is a reference to a class other than POD, which makes the link bad, and not the link itself), but I stick to my interpretation.
David hammen
source share