【发布时间】:2018-10-08 10:00:17
【问题描述】:
看看下面的sn-p:
#include <iostream>
#include <cstdint>
#include <boost/type_index.hpp>
using boost::typeindex::type_id_with_cvr;
int main(int argc, char** argv)
{
constexpr uint16_t b = 2;
constexpr uint16_t c = 3;
constexpr const auto bc = b * c;
std::cout << "b: " << type_id_with_cvr<decltype(b)>().pretty_name() << std::endl;
std::cout << "b * c: " << type_id_with_cvr<decltype(bc)>().pretty_name() << std::endl;
}
这会导致以下结果:
b: unsigned short const
b * c: int const
为什么将两个非单整数相乘得到一个整数?
编译器:g++ 5.4.0
【问题讨论】:
标签: c++