nothrow constructors/destructors should allow the struct to be passed as POD