Ik heb een aardig probleempje voor de liefhebber...
De volgende code in de header files (dit is even een klein stukje om het probleem te visualiseren)
Als ik nu de volgende code wil gaan gebruiken in een project dan krijg je iets in de trant van dit:
Session<Protocol, DataProcessor<Protocol, DataProcessor<...> >
Hoe kan ik er voor zorgen dat de compiler dit slikt, dit is een soort forward declaration wat ik nodig heb maar ik heb hier even niet het idee hoe ik dat kan oplossen.
De compiler die ik gebruik is g++ (GNU Compiler suite)
Als het gewone classes waren dan kon je forward declaration toepassen en was het voor elkaar.
De volgende code in de header files (dit is even een klein stukje om het probleem te visualiseren)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| template<class P, class D> class Session { protected: D *_processor; } template<class P, class D> class DataProcessor { protected: Session<P, D> *_session; } // Geen template class Protocol { } |
Als ik nu de volgende code wil gaan gebruiken in een project dan krijg je iets in de trant van dit:
Session<Protocol, DataProcessor<Protocol, DataProcessor<...> >
Hoe kan ik er voor zorgen dat de compiler dit slikt, dit is een soort forward declaration wat ik nodig heb maar ik heb hier even niet het idee hoe ik dat kan oplossen.
De compiler die ik gebruik is g++ (GNU Compiler suite)
Als het gewone classes waren dan kon je forward declaration toepassen en was het voor elkaar.
Google, Het mirakel van de 21e eeuw!!!!