|
|
On Apr 29, 3:45 pm, JoseMariaSola <JoseMariaS...@xxxxxxxxx> wrote:
> How may operators and operands does (typename) expression has?
>
> I'd say one operator, the cast operator, and two operands: typename
> and expression.
>
> But everywhere I read, cast is categorized as an unary operator. Why
> is that? Is it just a syntax cotegory?
(typename)(expression) has one operator `(typename)' and one operand
`(expression)'.
The reason the type is enclosed in parentheses (as a design decision)
is probably to avoid ambiguity, consider this:
int i = 1; /* define and initialize i to 1 */
{
int i; /* cast i to int, a statement with no effect, or define i in
block scope? */
}
|
|