I was confused by the following wording in the Standard 6.5.4/6:
If the value of the expression is represented with greater range or precision than required by the type named by the cast (6.3.1.8), then the cast specifies a conversion even if the type of the expression is the same as the named type and removes any extra range and precision.
The thing that I cannot understand is if the named type and the type of the expression is the same how can the value of the expression have some extra range or precision.
Can you provide an example demonstrating the rule? For now it looks a bit confusing.