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 tordu1>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). Si quelqu'un voit pourquoi ça ne compile pas
Merci d'avoir pris le temps de me lire![]()
Partager