【发布时间】:2012-04-18 07:08:41
【问题描述】:
我运行了一个从http://h264bitstream.sourceforge.net/站点下载的h264解析器程序
当我运行代码时,我得到以下错误
错误 C2668:'log':对重载函数的模糊调用
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(575): 可能是'long double log(long double)'
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(527): 或 'float log(float)'
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(120): 或 'double log(double)'
在下面的代码中
else if( pps->slice_group_map_type == 6 )
{
pps->pic_size_in_map_units_minus1 = bs_read_ue(b);
for( i = 0; i <= pps->pic_size_in_map_units_minus1; i++ )
{
**pps->slice_group_id[ i ] = bs_read_u(b, ceil( log2( pps->num_slice_groups_minus1 + 1 ) ) ); // was u(v)**
}
}
}
错误 C2668: 'log' : 对重载函数的模糊调用 1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(575): 可能是'long double log(long double)'
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(527): 或 'float log(float)'
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(120): 或 'double log(double)'
1> 在尝试匹配参数列表 '(int)' 时 在下面的代码中
if( pps->num_slice_groups_minus1 > 0 &&
pps->slice_group_map_type >= 3 && pps->slice_group_map_type <= 5)
{
sh->slice_group_change_cycle =
**bs_read_u(b, ceil( log2( pps->pic_size_in_map_units_minus1 +
pps->slice_group_change_rate_minus1 + 1 ) ) ); // was u(v) // FIXME add 2?**
}
错误 C2668:'log':对重载函数的模糊调用 1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(575): 可能是'long double log(long double)'
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(527): 或 'float log(float)'
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(120): 或 'double log(double)'
1> 在尝试匹配参数列表 '(int)' 时
bs_write_ue(b, pps->pic_size_in_map_units_minus1);
for( i = 0; i <= pps->pic_size_in_map_units_minus1; i++ )
{
**bs_write_u(b, ceil( log2( pps->num_slice_groups_minus1 + 1 ) ), pps->slice_group_id[ i ] ); // was u(v)**
}
}
我应该怎么做才能解决它?
【问题讨论】:
-
您的代码中没有
log,而是log2。为什么?猜测是您将整数传递给log,编译器无法决定您需要浮点数还是双精度结果。 -
error c2668 ambiguous call to overloaded function 的可能重复项(来自同一用户)
-
对
log的调用来自哪里? -
我认为这是 VS 已知的事情(如果它是 std 行为,则为 idk),如果您可以进行显式转换...
标签: c++ c visual-studio-2010 visual-c++