nothrow constructors should allow the struct to be passed as POD