【发布时间】:2012-04-20 07:33:59
【问题描述】:
int 加上 unsigned int 返回一个 unsigned int。应该这样吗?
考虑这段代码:
#include <boost/static_assert.hpp>
#include <boost/typeof/typeof.hpp>
#include <boost/type_traits/is_same.hpp>
class test
{
static const int si = 0;
static const unsigned int ui = 0;
typedef BOOST_TYPEOF(si + ui) type;
BOOST_STATIC_ASSERT( ( boost::is_same<type, int>::value ) ); // fails
};
int main()
{
return 0;
}
【问题讨论】:
-
也许你应该问问设计语言的人。
-
网站上有另一篇关于同一主题的帖子,您可以在此处找到:http://stackoverflow.com/questions/2084949/arithmetic-operations-on-unsigned-and-signed-integers 希望对您有所帮助!
-
+1 用于提供完整的测试用例。 sscce.org
标签: c++ int unsigned integer-arithmetic