Bonjour,
mon probl�me est le suivant :
j'ai une classe g�n�rique qui prends 2 param�tres :
le premier est un type d'objet � stocker, le second est la repr�sentation interne cet objet.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 generic<typename TItem, typename TInternalItem> private ref class Container : public Generic::IEnumerator<TItem> { /*...*/ Generic::IEnumerator<TInternalItem>^ iterator; virtual TItem GetCurrentItem() = Generic::IEnumerator<TItem>::Current::get { return static_cast<TItem>(iterator->Current); } }
J'aimerai pouvoir retourner un objet contenu dans un TInternalItem sous la forme d'un TItem. Pour cela, dans la classe donn� en param�tre TInternalItem, j'ai red�fini l'op�rateur de cast, et j'utilise un static_cast.
Le prob es que cela ne compile pas et j'obtiens l'erreur suivante :
Code (simplifi�) de la classe "TInternalItem":'static_cast' : cannot convert from 'TInternalItem' to 'TItem'
Pour info, si je remplace le static_cast par un safe_cast, le code compile mais n'appele pas mon op�rateur de conversion.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 generic<typename TType> private ref class InternalElement { internal: /*...*/ TType element; static operator TType(OrderedElement<TType>^ obj) { return obj->element; } };
Ai-je oubli� quelque chose?
Merci.
Partager