Bonsoir à tous , j'ai un problème lors de la compilation du code suivant:
mon compilateur (visual 2008) me dit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #include <vector> #include <iostream> #include <boost/range.hpp> using namespace boost; struct test { /** Le type liste générique du test */ template<typename T> struct liste { typedef std::vector<T> type; }; /** Le type plage générique du test */ template<typename T> struct plage { typedef boost::iterator_range<typename liste<T>::iterator>> type; }; liste<double>::type listeTest; /**< La liste du test */ plage<double>::type f() { return listeTest; } }; int main(void) { test t; t.listeTest.push_back(0); std::cout << t.f().front() << std::endl; return 0; }
j'espérai qu'il me remplace sans se plaindre le liste<T>::type par std::vector<T*> et lors de l'instantiation finale le plage<double>::type par boost::iterator_range<std::vector<double>::iterator>>. J'avoue que là je vois pas trop pourquoi il ne s'y retrouve pas (bien que je conçoive que ce que je demande est un peu tordu ). Si quelqu'un voit pourquoi ça ne compile pas1>d:\programmation\testcontrat\testcontrat\main.cpp(15) : error C2059: erreur de syntaxe*: '>'
1> d:\programmation\testcontrat\testcontrat\main.cpp(16)*: voir la référence à l'instanciation de la classe modèle 'test::plage<T>' en cours de compilation
Merci d'avoir pris le temps de me lire
Partager