Indeed. If the checks are performed on the signed indexes after sign-extending and reinterpreting them as unsigned numbers, then the length of indexable containers should be limited by int::MAX. Currently it seems to be true for containers using continuous memory, but not necessarily true for bit containers, containers of zero-sized objects or non-continuous indexable containers (like deque). Although it may be a sane constraint to impose.