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

NiJuste 8 Messages postés lundi 5 décembre 2005Date d'inscription 1 mars 2010 Dernière intervention - 14 juin 2008 à 12:42 - Dernière réponse : luhtor 2023 Messages postés mardi 24 septembre 2002Date d'inscription 28 juillet 2008 Dernière intervention
- 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
luhtor 2023 Messages postés mardi 24 septembre 2002Date d'inscription 28 juillet 2008 Dernière intervention - 14 juin 2008 à 16:39
3
Merci
Je sais pas pk tu mets  ca, mais enleves le: namespace std{}

Merci luhtor 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de luhtor
Meilleure réponse
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 14 juin 2008 à 22:36
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...

Merci cs_rt15 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de cs_rt15
Meilleure réponse
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 14 juin 2008 à 23:17
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)

Merci cs_rt15 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

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

Merci luhtor 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de luhtor
Meilleure réponse
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 15 juin 2008 à 13:19
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.

Merci cs_rt15 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de cs_rt15
NiJuste 8 Messages postés lundi 5 décembre 2005Date d'inscription 1 mars 2010 Dernière intervention - 14 juin 2008 à 22:46
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
NiJuste 8 Messages postés lundi 5 décembre 2005Date d'inscription 1 mars 2010 Dernière intervention - 14 juin 2008 à 22:55
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
NiJuste 8 Messages postés lundi 5 décembre 2005Date d'inscription 1 mars 2010 Dernière intervention - 15 juin 2008 à 00:23
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
NiJuste 8 Messages postés lundi 5 décembre 2005Date d'inscription 1 mars 2010 Dernière intervention - 15 juin 2008 à 13:27
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
NiJuste 8 Messages postés lundi 5 décembre 2005Date d'inscription 1 mars 2010 Dernière intervention - 15 juin 2008 à 13:32
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
luhtor 2023 Messages postés mardi 24 septembre 2002Date d'inscription 28 juillet 2008 Dernière intervention - 16 juin 2008 à 22:03
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.