In September of 2015 ARIN, the organization that handles IP address allocation in the US officially announced the depletion of their IPv4 space. At that point they could no longer fulfill requests for new IPv4 addresses.
In a Service Provider network most subscribers are assigned a public IPv4 address, which the SP requested from ARIN. A subscriber could be assigned a private IPv4 address but it requires a device in the SP network to translate the private address to a public address. This process is referred to as NAT, more specifically PAT . It does introduce limitations related to the end-user experience, specifically applications that require incoming connections from outside the users network such as SIP voice, torrent, and other applications, but for general users is not noticeable.
With the exhaustion of this IPv4 space and the not so complete implementation of IPv6, the new addressing scheme, across the internet providers must support both and work around the IPv4 issue. How exactly? My recommendation is to migrate the lower tiers of broadband service to private IPv4 addressing and implement carrier-grade NAT (CGN). This allows an over subscription of public to private mappings resulting in thousands of subscribers using only hundreds of public IPv4 addresses. For other higher tiers the subscribers would be directly assigned public IPv4 addresses just like before. On top of that IPv6 would be offered to all subscribers in what is called dual-stack addressing, end devices using IPv4 and IPv6 on the same interface.
This approach will allow end devices to connect to both IPv4 and IPv6 services on the Internet and preserve IPv4 address space. Over time, probably many years, as more and more services on the Internet move to IPv6 the use of IPv4 can slowly be depreciated.