Re-bonjour,
J'ai de plus en plus d'étonnement, au fur et à mesure que j'utilise Visual. Maintenant le code seuivant ne compile pas :
[cpp ]
#include <list>
using namespace std;
class MathFunc
{
public:
MathFunc();
template <class T>
static list<T> identique(list<T> maliste);
protected:
};
template <class T>
list<T> MathFunc::identique(list<T> maliste)
{
return (maliste);
}
class Article
{
public:
Article();
protected:
int _val;
};
int main()
{
int i;
list<Article> liste0,liste1;
liste1 = MathFunc::identique(liste0);
return(0);
}
[ /cpp]
En fait, la simple compilation du programme sans l'édition de lien me gènère ce message d'erreur :
Compiling...
main.cpp
e:\chemin\main.cpp(42) : error C2893: Failed to specialize function template 'class std::list<T,class std::allocator<T> > __cdecl MathFunc::identique(class std::list<T,class std::allocator<T> > )'
With the following template arguments:
'class Article'
Error executing cl.exe.
main.obj - 1 error(s), 0 warning(s)
La ligne 42 correspond à :
[cpp ]
liste1 = MathFunc::identique(liste0);
[ /cpp]
Sauriez vous d'ou vient ce problème propre à Visual (je le redit "propre à Visual", car comme pour le précédent problème que j'ai rencontré il y a quelques jours, ce type de programme marche parfaitement sous Linux avec gcc) ? Est ce qu'il manque qqch dans les options de compilations ?