Je paniquer à chaque fois que j'ouvre tout STL liées au code de Visual Studio est mise en œuvre pendant le débogage de mon code:
// From <xtree>
if (_Where == begin())
{ // insert at beginning if before first element
if (_DEBUG_LT_PRED(this->comp,
this->_Kfn(_Val), _Key(_Where._Mynode())))
return (_Insert(true, _Where._Mynode(), _Val));
}
else if (_Where == end())
{ // insert at end if after last element
if (_DEBUG_LT_PRED(this->comp,
_Key(_Rmost()), this->_Kfn(_Val)))
return (_Insert(false, _Rmost(), _Val));
}
//...
else if (_DEBUG_LT_PRED(this->comp,
_Key(_Where._Mynode()), this->_Kfn(_Val))
&& (++(_Next = _Where) == end()
|| _DEBUG_LT_PRED(this->comp,
this->_Kfn(_Val), _Key(_Next._Mynode()))))
{ // insert after _Where
if (_Isnil(_Right(_Where._Mynode())))
return (_Insert(false, _Where._Mynode(), _Val));
else
return (_Insert(true, _Next._Mynode(), _Val));
}
La présence de commentaires me fait me sentir comme si un homme a écrit, mais la mauvaise mise en forme, l'utilisation libérale des traits de soulignement au début de tout (pourquoi?), et extrêmement illisible conditions comme (++(_Next = _Where) == end()
|| _DEBUG_LT_PRED ...)
me faire sentir comme si ils ont été générés à partir d'un autre morceau de code source, pas écrit comme-est.
Personne ne sait qui est le cas? (Si elle a été générée à partir d'un autre morceau de code, je serais intéressé de savoir comment et pourquoi cela a été fait.)
Pour mémoire, voici la même chose, mais "formaté":
if (Where == begin())
{
// insert at beginning if before first element
if (DEBUG_LT_PRED(this->comp, this->Kfn(Val), Key(Where.Mynode())))
return (Insert(true, Where.Mynode(), Val));
}
else if (Where == end())
{
// insert at end if after last element
if (DEBUG_LT_PRED(this->comp, Key(Rmost()), this->Kfn(Val)))
return (Insert(false, Rmost(), Val));
}
//...
else if (DEBUG_LT_PRED(this->comp, Key(Where.Mynode()), this->_Kfn(Val))
&& (++(Next = Where) == end()
|| DEBUG_LT_PRED(this->comp, this->_Kfn(Val), Key(Next.Mynode()))))
{
// insert after Where
if (Isnil(Right(Where.Mynode())))
return (Insert(false, Where.Mynode(), Val));
else
return (Insert(true, Next.Mynode(), Val));
}
À mon humble avis c' est plus comme la façon dont il s'est avéré que si un homme l'a écrit, mais encore une fois, je n'ai aucune idée.