使用clang3.9编译此代码时:constexprboolis_small(longlongv){returnv它生成的程序集等同于intf(inta){returna;},因为它确定is_small(a)将始终为真,因为a是一个int,这(在我的平台)总是小于0x4000000000000000。当我将is_small更改为:constexprboolis_small(longlongv){returnv>=-0x4000000000000000;}正如预期的那样,发生了完全相同的情况。但是,当我更改is_small以检查这两个条件时:constexprboolis_small(l