Lors du passage à la version 2.0, il est prévu de supprimer définitivement certaines classes qui sont obsolètes depuis plusieurs années et de modifier quelque peu le comportement d'autres classes.
Le tableau suivant liste les classes qui seront supprimées et comment les remplacer.
ConstCString | A remplacer par la classe String |
CString | A remplacer par la classe String |
CStringAlloc | A remplacer par la classe String |
CStringBufT | A remplacer par la classe String |
OCStringStream | A remplacer par la classe OStringStream |
CArrayT | A remplacer par la classe UniqueArray |
BufferT | A remplacer par la classe UniqueArray |
CArrayBaseT | A remplacer par la classe ArrayView |
ConstCArrayT | A remplacer par la classe ConstArrayView |
CArray2T | A remplacer par la classe UniqueArray2 ou UniqueMultiArray2 |
CArray2BaseT | A remplacer par la classe Array2View ou MultiArray2View |
CArrayBuilderT | A remplacer par SharedArray |
MutableArray | A remplacer par SharedArray |
ConstArray | A remplacer par SharedArray |
La version 2.0 comporte aussi les modifications suivantes:
- la classe String devient non modifiable. Les opérateurs permettant de modifier l'instance, comme String::operator+=() sont supprimés.
- Les classes Array et Array2 sont modifiées pour interdire les recopies. En effet, le comportement par défaut qui avait une sémantique par référence n'était pas explicite et pouvait induire en erreur les gens habitués aux classes standards de la STL telles que std::vector. Il faut donc maintenant utiliser SharedArray ou UniqueArray à la place de Array si on souhaite pouvoir copier le tableau. La classe SharedArray utilise la sémantique par référence et la classe UniqueArray la sémantique par valeur. Ces deux classes dérivent de Array et peuvent donc être utilisées lorsqu'il faut passer un tableau modifiable. Pour plus d'informations, la page arcanedoc_core_types_array_usage décrit l'utilisation des classes gérant les tableaux dans Arcane.
- Suite à l'interdiction des recopies de Array et Array2, les méthodes qui utilisaient un Array ou Array2 en argument utilisent maintenant un Array& ou Array2&.