我正在使用变量RockElem获得转换错误。该变量是在一个类中定义的,其他变量是整数。这个变量被定义为const。错误:从整型转换为指针类型需要reinterpret_cast,C风格转换或函数风格转换
if(resistivitySolve)
fileName << "_resist";
else if(dynamic_cast< const Water* >(fluid) != 0)
fileName << "_water";
else
fileName << "_oil";
fileName << "_sw_" << waterSat*100.0;
sort(m_throatConductances.begin(), m_throatConductances.end(), throatIndexCompare());
pair dummy(0, 0.0);
int idx(-99);
for(size_t i = 0; i < m_throatConductances.size(); ++i)
{
int tmp(m_throatConductances[i].first->orenIndex());
if(tmp == idx) m_throatConductances[i] = dummy;
idx = tmp;
}
错误我得到的是 错误C2440:初始化:不能从“诠释”到“常量RockElem *”转换 1>从整型到指针类型的转换要求reinterpret_cast,C样式转换或功能样式转换
的错误是使用一个const术语RockElem前的讲座*的这部分
[
_Ty1=const RockElem *,
_Ty2=double,
_Ty=int,
_Other1=int,
_Other2=double
]
见参考起作用模板实例 '的std :: _ Pair_base < _Ty1,_Ty2> :: _ Pair_base < _Ty,双>(_其他1 & &,_Other2 & &)' 被编译
的代码使用该线是
pair dummy(0, 0.0);
设置不正确?
+0
哪条线路导致错误? –
+0
将其更改为“dummy(nullptr,0.0)”或“dummy {}”。 –
+0
@Kerrek SB C++ 11是否更改规则以便文字零不再转换为指针类型?这会破坏大量的代码。 –