Bonjour,
Petit souci avec la déduction de paramèter template template. J'ai la classe suivante :
Le problème est que lorsque j'appelel cette fonction push_back_column, j'obtiens le message d'erreur suivant de Visual :
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 template <class T, bool MatrixOrientation = true> class BidimensionalVector { public: inline void push_back_column(const std::vector<T>& column) { push_back_column_impl(column,1); } inline void push_back_column(const BidimensionalVector& column) { push_back_column_impl(column,column.xsize()); } private: template <template <class> class C> void push_back_column_impl(const C<T>& column, size_type ncolumn); }; //Plus loin implémentation de la fonction push_back_column_impl
Alors que le même code compile et fonctionne parfaitement avec gcc. J'avoue que je suis un poil perplexecould not deduce template argument for 'const C<T> &' from 'const std::vector<_Ty>'
with
[
T=double
]
and
[
T=double
]
and
[
_Ty=double
]
Bon je peux résoudre le pb en utilisant un simple paramètre template pour am fonction plutôt qu'un template de template, mais j'aimerais comprendre d'où vient le souci.
Merci d'avance.
Partager