J'essaie d'inclure rapidxml dans mon projet actuel. Cependant, il ne serait pas construire.Des sauts de code étranges se construisent dans MSVC. Qu'est-ce que ça veut dire?
Visual Studio se plaindrait de ce morceau de code (rapidxml.hpp: 419 + 451):
419: void *memory = allocate_aligned(sizeof(xml_attribute<Ch>));
420: xml_attribute<Ch> *attribute = new(memory) xml_attribute<Ch>;
Le compilateur dirait
rapidxml.hpp (420): erreur C2061: erreur de syntaxe: identifiant 'memory'
Et je vois un peu comment cela pourrait perturber le compilateur. Cela m'embrouille beaucoup, moi aussi. Qu'est-ce que la partie (memory)
de new(memory) xml_attribute<Ch>
fait là?
Si je supprime cette partie (memory)
, elle compile très bien.
En outre, gcc le compile juste avec (memory)
inclus.
Edit:
Oh, et je surchargées new
avec DEBUG_NEW
pour faire du débogage de mémoire. DEBUG_NEW
ne prend pas en charge le placement nouveau.
Il devrait toujours être plus facile de confondre un utilisateur que le compilateur ... Le compilateur devrait connaître sa langue et tous les détails sanglants, tandis que nous les utilisateurs sont limités et ne pouvons en savoir que beaucoup. –