Only trivial constructors should allow the struct to be passed as POD