Problème déduction paramètre template
Bonjour,
Petit souci avec la déduction de paramèter template template. J'ai la classe suivante :
Code:
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 |
Le problème est que lorsque j'appelel cette fonction push_back_column, j'obtiens le message d'erreur suivant de Visual :
Citation:
could not deduce template argument for 'const C<T> &' from 'const std::vector<_Ty>'
with
[
T=double
]
and
[
T=double
]
and
[
_Ty=double
]
Alors que le même code compile et fonctionne parfaitement avec gcc. J'avoue que je suis un poil perplexe :koi:
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.