An evaluation of a constructor invocation x.c[targs](args1)...(argsn) consists of the following steps:
• First, the prefix x is evaluated.
• Then, the arguments args1, ..., argsn are evaluated from left to right.
• Finally,the class being constructed is initialized by evaluating the template of the class referred to by c.