Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Aider moi a trouver l'erreur [ Algorithme / Maths ] (NiJuste)

samedi 14 juin 2008 à 12:42:47 | Aider moi a trouver l'erreur

NiJuste

Avec ce petit code j'ai beaucoup d'erreurs de compilation et ca m'empeche de continuer. Aider moi sur vous plait


#include <iostream>
#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)




samedi 14 juin 2008 à 16:39:06 | Re : Aider moi a trouver l'erreur

luhtor

Réponse acceptée !
Je sais pas pk tu mets  ca, mais enleves le: namespace std{}

samedi 14 juin 2008 à 22:36:59 | Re : Aider moi a trouver l'erreur

rt15

Membre Club
Réponse acceptée !
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...

samedi 14 juin 2008 à 22:46:24 | Re : Aider moi a trouver l'erreur

NiJuste

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++

samedi 14 juin 2008 à 22:55:52 | Re : Aider moi a trouver l'erreur

NiJuste

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 <iostream>
#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)

samedi 14 juin 2008 à 23:17:06 | Re : Aider moi a trouver l'erreur

rt15

Membre Club
Réponse acceptée !

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)


dimanche 15 juin 2008 à 00:23:36 | Re : Aider moi a trouver l'erreur

NiJuste

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.


dimanche 15 juin 2008 à 01:29:51 | Re : Aider moi a trouver l'erreur

luhtor

Réponse acceptée !
Pas de pb pour compiler ton code sous visual 2008 a part 2 "typename" qu'il m'a demandé de rajouter.

dimanche 15 juin 2008 à 13:19:10 | Re : Aider moi a trouver l'erreur

rt15

Membre Club
Réponse acceptée !

Créé un nouveau projet C++ par exemple Win32, console, vide.

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

Dans main.cpp, tu met :


#include "fichierquicompilepas.h"
int main()
{
}

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


dimanche 15 juin 2008 à 13:27:21 | Re : Aider moi a trouver l'erreur

NiJuste

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


1 2

Cette discussion est classé dans : test, error, cpp, aec, dfd


Répondre à ce message

Sujets en rapport avec ce message

j'ai un probleme de creation de mon propre container a base de STL [ par NiJuste ] J'ai un probleme, j'ai a creer son propre container mais a base de STL, avec l'algorithme que j'ai utilise on me donne des erreurs de compilation (Vis Qui peut m'aider à comprendre où est l'erreur [ par Minikisscool ] Lorsque je compile j'ai ces erreurs :--------------------Configuration: test - Win32 Debug-----Compiling...test.cppC:\test\test.cpp(34) : warning C451 Pb de compilation [ par Minikisscool ] Lorsque je compile j'ai ces erreurs : --------------------Configuration: test - Win32 Debug-----Compiling... test.cpp C:\test\test.cpp(34) : warning econio.h petit bug [ par cognac ] Bonjour,J'ai intallé econio.h (mais pas econio.ccp), je fais le petit test que voilà:#include #include int main(){textcolor(YELLOW);coutreturn 0;}Pas pb avec ADO [ par Frederyck ] Voilà g un pb, j'utilise dans mon appli une bdd Access 97 via ADO et donc g inclut la commande:#import "C:\Program Files\Fichiers communs\System\ado\m Erreur de compilation VC++ 6 [ par DindonOz ] Je viens de créer une application permettant de communiquer avec une station météo et lorsque je compile, j'obtient des erreurs de link: ------------ probleme de compilation programme mysql [ par DindonOz ] salut a tous. je viens de faire une petit programme en cpp sous linux, avec kdevelop, et lorsque je veux compiler mon fichier plusieurs erreurs appais xerces c++ XML [ par boutonnet ] Bonjour a tous, je developpe une application qui doit dessiner un arbre phylogenetique (wxwidgets). Pour ce faire, je voudrais utiliser un arbre au fo GTK+ [ par Uims ] Bonjour a tous,je viens d'installer gtk+ sous dev-cpp, je compile le projet par default mais: C:\Dev-Cpp\Makefile.win [Build Error]  [main.o] Error 1 Dx et VS2005 [ par cali70 ] Je vais peter un plomb! je viens de réinstaller tout proprement visual studio 2005 et le sdk directx (avec la maj juin 2005) et j'ai 2 erreurs de link


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,23 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.