你好,我是c +的新手,在这里我需要对我的头文件的固定点添加进行增强测试。它由以下代码完成。
BOOST_AUTO_TEST_CASE( add )
{
double a=(std::numeric_limits<fpml::fixed_point<short, 8> >::min)();
double b=(std::numeric_limits<fpml::fixed_point<short, 8> >::max)();
for (double x=a; x<b; ++x)
{
for (double y=a; y<b; ++y)
{
fpml::fixed_point<int, 16> xx = x;
fpml::fixed_point<int, 16> yy = y;
BOOST_CHECK( (fpml::fixed_point<int, 16>)(x+y) == xx+yy );
}
}
}
我只需知道代码中的内容是什么,
限制为fpml::fixed_point<short, 8>
的课程模板short_min
已分配到double function a
,并且fpml::fixed_point<short, 8>
的限制为short_max
的同一课程模板double function b
已分配给for loop
?
{{1}}中发生的事情是从短的最小值到短的最小值循环?
有人可以解释在for lopp中发生了什么,以及如何进行添加和检查
答案 0 :(得分:0)
std::numeric_limits是traits-type
。代码中的某处,fmpl::fixed_point<T, int>
有专门化。然后a
==最小值类型fmpl::fixed_point<short, 8>
和b
==此类型的最大值。对于循环检查,对于所有a
和b
,fmpl::fixed_point (a + b)
== fmpl::fixed_point(a)
和fmpl::fixed_point(b)
的总和,范围a到b。