OK, so it's obviously not a primitive type, but could it be? Are all those 16 bytes actually used? If so, that's pretty darn future proof, as there isn't even a unit of measure suitable enough to represent the maximum file size - it's 3.4E14 yottabytes.
What does the standard say you should be able to do with a pos_type? Can you treat it like an integral primitive?