鉴于此代码,
unsigned short us = 0;
int i = 0;
auto sum = us + i;
Run Code Online (Sandbox Code Playgroud)
是sum实现定义的类型?我对C++ 11标准的阅读是肯定的:
sum为int.sum为unsigned int.如果上述分析是合法的,则意味着使用auto内置类型的使用算术表达式声明的变量声明可以导致实现定义的结果.我猜这会让很多程序员感到惊讶,sum上面的类型并不完全由标准决定.
我的推理合法吗?