Salut à tous.
Voici une petite classe template de test qui me pose problème:
Le but est de pouvoir choisir si on désire protéger l'objet par un mutex ou pas. C'est une question de facilité d'utilisation, c'est pour une petite biblio qui doit être la plus simple possible à utiliser, je voudrais rendre le support multithread optionel pour ne pas toujours être obligé de linker avec les binaires de boost::thread. Mais je voudrais aussi pouvoir utiliser des versions multithread et non multithread de cette classe dans le même programme si nécessaire, question d'optimisation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 template<int THREAD_SUPPORT> struct machin { machin() { #if (THREAD_SUPPORT==0) cout << "no thread support" << endl; #else cout << "thread support" << endl; #endif } };
L'ennui c'est que ce code va systématiquement afficher "no thread support", même si je passe 1 en paramètre template. Donc mes questions sont:
- est-ce qu'il est possible d'utiliser une constante de template en conjonction avec le précompilateur, comme j'essaie de le faire (je me souviens plus, j'ai toujours calé un peu sur les templates)
- si oui, qu'est-ce qui cloche dans mon code?
Merci d'avance.
Partager