Aider moi a trouver l'erreur [Résolu]

Messages postés
8
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
1 mars 2010
- - Dernière réponse : luhtor
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
- 16 juin 2008 à 22:03
Avec ce petit code j'ai beaucoup d'erreurs de compilation et ca m'empeche de continuer. Aider moi sur vous plait

#include
#include <list>
#include <string>
#include "stdafx.h"
namespace std{}
using namespace std;

template<class T>

class Ring {
list<T> lst;
 
};

regardez les erreurs que ca produit:

--------------------Configuration: test - Win32 Debug--------------------
Compiling...
dfd.cpp
E:\aec\test\dfd.cpp(12) : error C2143: syntax error : missing ';' before '<'
        E:\aec\test\dfd.cpp(74) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(12) : error C2501: 'list' : missing storage-class or type specifiers
        E:\aec\test\dfd.cpp(74) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(12) : error C2059: syntax error : '<'
        E:\aec\test\dfd.cpp(74) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(12) : error C2238: unexpected token(s) preceding ';'
        E:\aec\test\dfd.cpp(74) : see reference to class template instantiation 'Ring<T>' being compiled
Error executing cl.exe.

test.exe - 4 error(s), 0 warning(s)
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
3
Merci
Je sais pas pk tu mets  ca, mais enleves le: namespace std{}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de luhtor
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
3
Merci
Salut,

Compile sous gcc/windows (En virant l'inclue stdafx).

Ca sent l'erreur en fin du fichier x qui provoque la détection en début du fichier y.

Essaie de regarder les autres fichiers...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
3
Merci
En fait avec ton namespace std{}, c'est comme si tu contribuais au namespace standard du C++.
Comme si tu faisais du code destiné à être utilisé par tous les développeurs C++ et livré avec tous les compilo.
Donc vire le.

gcc est nettement plus tatillon que le compilo fournit avec VS. Un code VS ne compile pas souvent sous gcc, mais l'inverse est quasi systématique.

Donc je me permet d'insister : Le problème n'est probablement pas dans CE fichier.
(Ou alors une sombre histoire d'encodage du fichier... Nan mais nan)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_rt15
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
3
Merci
Pas de pb pour compiler ton code sous visual 2008 a part 2 "typename" qu'il m'a demandé de rajouter.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de luhtor
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
3
Merci
Créé un nouveau projet C++ par exemple Win32, console, vide.

Dedans tu met deux fichier :
main.cpp
fichierquicompilepas.h

Dans main.cpp, tu met :





<hr />



#include "fichierquicompilepas.h"


int main()
{
}<hr />


Dans le .h, tu met ton code qui ne compile pas.
Et là, je serais surpris qu'il te pose les mêmes erreurs.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_rt15
Messages postés
8
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
1 mars 2010
0
Merci
le probleme c que en enlevant le namespace std{}
j'ai cet erreur:
E:\aec\test\dfd.cpp(6) : error C2871: 'std' : does not exist or is not a namespace

et le travail que j'ai je dois le faire uniquement  en Visual C++
Commenter la réponse de NiJuste
Messages postés
8
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
1 mars 2010
0
Merci
En fait  le probleme ce que , je veux creer mon propre container  a base de STL,
avec l'algorithme que j'ai utilise on me donne des erreurs de
compilation ( en Visual C++ 6.0). Aidez-moi a resourdre ce probleme.
 Ca c'est l'agorithme utilise,
#include
#include <list>
#include <string>
usingnamespace std;

template<class T>
class Ring {
list<T> lst;
public:
// Declaration necessary so the following
// 'friend' statement sees this 'iterator'
// instead of std::iterator:
class iterator;
friendclass iterator;
class iterator : public std::iterator<
std::bidirectional_iterator_tag,T,ptrdiff_t>{
list<T>::iterator it;
list<T>* r;
public:
// "typename" necessary to resolve nesting:
iterator(list<T>& lst,
consttypename list<T>::iterator& i)
: r(&lst), it(i) {}
booloperator==(const iterator& x) const {
return it == x.it;
}
booloperator!=(const iterator& x) const {
return !(*this == x);
}
list<T>::reference operator*() const {
return *it;
}
iterator& operator++() {
++it;
if(it == r->end())
it = r->begin();
return *this;
}
iterator operator++(int) {
iterator tmp = *this;
++*this;
return tmp;
}
iterator& operator--() {
if(it == r->begin())
it = r->end();
--it;
return *this;
}
iterator operator--(int) {
iterator tmp = *this;
--*this;
return tmp;
}
iterator insert(const T& x){
return iterator(*r, r->insert(it, x));
}
iterator erase() {
return iterator(*r, r->erase(it));
}
};
void push_back(const T& x) {
lst.push_back(x);
}
iterator begin() {
return iterator(lst, lst.begin());
}
int size() { return lst.size(); }
};

et voila les erreurs q'on me etourne:

--------------------Configuration: test - Win32 Debug--------------------
Compiling...
dfd.cpp
E:\aec\test\dfd.cpp(10) : error C2143: syntax error : missing ';' before '<'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(10) : error C2501: 'list' : missing storage-class or type specifiers
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(10) : error C2059: syntax error : '<'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(10) : error C2238: unexpected token(s) preceding ';'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(17) : error C2039: 'iterator' : is not a member of 'std'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(17) : error C2504: 'iterator' : base class undefined
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(17) : error C2143: syntax error : missing ',' before '<'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(17) : error C2059: syntax error : '<'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(18) : error C2039: 'bidirectional_iterator_tag' : is not a member of 'std'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(19) : error C2143: syntax error : missing ';' before '<'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(19) : error C2501: 'list' : missing storage-class or type specifiers
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(19) : error C2059: syntax error : '<'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(19) : error C2039: 'iterator' : is not a member of '`global namespace''
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(19) : error C2238: unexpected token(s) preceding ';'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(20) : error C2143: syntax error : missing ';' before '<'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(20) : error C2501: 'list' : missing storage-class or type specifiers
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(20) : error C2059: syntax error : '<'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(20) : error C2238: unexpected token(s) preceding ';'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(24) : error C2039: 'iterator' : is not a member of '`global namespace''
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(23) : error C2629: unexpected 'class Ring<T>::iterator ('
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(23) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(32) : error C2143: syntax error : missing ';' before '<'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(32) : error C2501: 'list' : missing storage-class or type specifiers
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(32) : error C2059: syntax error : '<'
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(32) : error C2039: 'reference' : is not a member of '`global namespace''
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
E:\aec\test\dfd.cpp(32) : error C2334: unexpected token(s) preceding '{'; skipping apparent function body
        E:\aec\test\dfd.cpp(71) : see reference to class template instantiation 'Ring<T>' being compiled
Error executing cl.exe.

test.exe - 26 error(s), 0 warning(s)
Commenter la réponse de NiJuste
Messages postés
8
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
1 mars 2010
0
Merci
Je comprends, mais le code la, je peux l'utiliser en VC++,
qu'est ce que je dois changer pour que ca marche en VC++.
Merci.
Commenter la réponse de NiJuste
Messages postés
8
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
1 mars 2010
0
Merci
Merci bcp pour vos reponses, elles m'aident enormement.
j'ai compile ca en VC++ 6.0, mais je sais pas si c'est un probleme de VC++ 6.0 ou bien une mauvaise utilisation de ma part, on dirait que le visual 6.0 ne reconnait pas les  "using namespace std;" , je l'ai enleve et devant chaque "list", j'ai du ajoute le mot "std::", et les erreurs on disparu
Commenter la réponse de NiJuste
Messages postés
8
Date d'inscription
lundi 5 décembre 2005
Dernière intervention
1 mars 2010
0
Merci
et le seul probleme qui me reste maintenant ce qu'en declarant
typedef DFD<Element>::iterator It;
It it;
j'ai encore une erreur de compilation
e:\aec\analyseur d expression complexe\definition.h(131) : error C2512: 'iterator' : no appropriate default constructor available.

Comment resoudre ce genre de probleme
Commenter la réponse de NiJuste
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
0
Merci
Essai: typedef typename DFD<Element>::iterator It;
Commenter la réponse de luhtor

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.