鉴于此代码,
unsigned short us = 0;
int i = 0;
auto sum = us + i;
是sum
实现定义的类型?我对C ++ 11标准的阅读是肯定的:
sum
的类型为int。 sum
的类型为unsigned int。如果上述分析是合法的,则意味着使用auto
声明使用内置类型的算术表达式初始化的变量可以导致实现定义的结果。我猜想很多程序员都会惊讶于上面sum
的类型并不完全由标准决定。
我的推理合法吗?
答案 0 :(得分:0)
类型是特定于实现的,但不是实现定义的。实现定义意味着实现必须记录它的作用。