OVH Cloud OVH Cloud

Editer du C++ template avec un editeur de texte

138 réponses
Avatar
Marc Boyer
Bonjour,

une petite question sur vos pratiques d'édition.

Pour écrire la définition de code de classe template, j'aimerais
bien séparer l'interface de l'implémentation.

Mais ça devient très lourd, du genre

template <class T>
typename X<T>::iterator X<T>::first_with(typename X<T>::cond& c){
....
}

alors que si je laisse dans la déclaration de la classe, ça donne
iterator first_with(cond& c);

Je m'en sort à grands coups de
#define X_TEMPLATE template<class T>
#define X X<T>
#define iterator typename X<T>::iterator
#define cond typename X<T>::cond

mais c'est lourd.

Vous faites comment vous ? Un super éditeur/IDE qui cache tout le sucre ?


Et sinon, pourquoi les classes (enfin, mon compilo) ne permettent elle pas
de faire

class X {
void foo(); // Déclaration
...
void foo(){...}; // Implementation
}

Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.

10 réponses

1 2 3 4 5
Avatar
Marc Boyer
In article <4199c5be$0$3315$, K. Ahausse wrote:

"Marc Boyer" a écrit dans le message
de news:cnccv0$jla$
Fabien wrote:
Si tu regardes comment bossent les grands groupes d'édition de logiciels
(génère du code natif JNI par exemple ou ouvre le src d'Apache HTTP
Server), tu verras que tout le monde y va à grand coup de #define.


OK.

C'est que cette solution ne doit pas être des plus mauvaises...


J'avoue qu'en fait, je rève d'un bel IDE qui masque un peut
tout ce sucre: je sélectionne une classe, j'accède à sa définition,
son implémentation, ses spécialisation, tout ça bien rangé...

Je vais tester VC++ un de ces jours pour voir.


La touche 'F12' ( le browser de VC++ ) se positionne directement sur la
définition du symbole choisi (macro, variable, fonction, class, attribut,
méthode,...) Et c'est purement magique. L'écriture ET la mise au point de
programme atteint un confort, que je n'ai connu qu'avec les suites de
développement MS.

Sous Linux je n'ai pas trouvé un IDE qui rivalise.( Je n'ai pas, non plus,
réaliser un test exhaustif de toutes les solutions envisageables, cela
demanderai un investissement en temps prohibitif ).


VI[M]|[X]emacs + etags|ctags

C'est sensé faire exactement ça.
Ca marchait très bien en C, comme ce n'est pas exactement mon
besoin, je n'ai pas regardé pour C++.

Enfin bon, VC++ ne cache donc pas tout le sucre des templates.

Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.



Avatar
Jean-Marc Bourguet
Marc Boyer writes:

Enfin bon, VC++ ne cache donc pas tout le sucre des templates.


Quand on parle de sucre syntaxique, c'est exactement dans l'autre
sens: des choses non necessaires mais qui facilitent la vie.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
Marc Boyer
In article , Jean-Marc Bourguet wrote:
Marc Boyer writes:

Enfin bon, VC++ ne cache donc pas tout le sucre des templates.


Quand on parle de sucre syntaxique, c'est exactement dans l'autre
sens: des choses non necessaires mais qui facilitent la vie.


Oui, c'est vrai...

Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.


Avatar
K. Ahausse
"Marc Boyer" a écrit dans le message
de news:cncj0u$l3m$
In article <4199c5be$0$3315$, K. Ahausse wrote:

VI[M]|[X]emacs + etags|ctags


Peut-on classer ce bel assemblage dans la catégorie IDE ?


C'est sensé faire exactement ça.
Ca marchait très bien en C, comme ce n'est pas exactement mon
besoin, je n'ai pas regardé pour C++.


Désolé, mais ce que j'indiquais n'est pas QUE sensé marcher, cela fonctionne
parfaitement, avec souplesse, sans distinction C/C++.
Ce qu'il y manque c'est la mise au point aisée comme sous Windows.


Enfin bon, VC++ ne cache donc pas tout le sucre des templates.


Effectivement, 'tout' n'est pas gérer, cela va de soi
Nul n'est obligé apprécier VC++, cela va de soi.

Si une solution, au moins équivalente à VC++, existe sous Linux, un énorme
merci à celui qui pourrait la dévoiler.

Avatar
Marc Boyer
K. Ahausse wrote:
"Marc Boyer" a écrit dans le message
de news:cncj0u$l3m$
In article <4199c5be$0$3315$, K. Ahausse wrote:

VI[M]|[X]emacs + etags|ctags


Peut-on classer ce bel assemblage dans la catégorie IDE ?


Pour moi, Xemacs vaut pas mal d'IDE déjà rencontré
(pour mes besoins il s'entend).

C'est sensé faire exactement ça.
Ca marchait très bien en C, comme ce n'est pas exactement mon
besoin, je n'ai pas regardé pour C++.


Désolé, mais ce que j'indiquais n'est pas QUE sensé marcher, cela fonctionne
parfaitement, avec souplesse, sans distinction C/C++.


J'avais compris. Et en C, ça fonctionne parfaitement. En
C++, je n'ai pas regardé.

Ce qu'il y manque c'est la mise au point aisée comme sous Windows.


Genre ddd ?

Enfin bon, VC++ ne cache donc pas tout le sucre des templates.


Effectivement, 'tout' n'est pas gérer, cela va de soi
Nul n'est obligé apprécier VC++, cela va de soi.


Ce n'est absolument pas une attaque contre VC++. J'ai actuellement
un besoin, et je voulais savoir si un environnement le traitait
(et entre autre, comment vous faites vous, si vous vous en accomodez
ou pas).
Ce que j'avais beaucoup apprécié sur VB, c'était la complétion
automatique en fonction du type.
Ca, seul un IDE peut le faire car cela demande une partie
de compilation en ligne.

Si une solution, au moins équivalente à VC++, existe sous Linux, un énorme
merci à celui qui pourrait la dévoiler.


Pour quels besoins ?
Xemacs+etags+gdb offre un certain nombre de fonctionnalités.

Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.


Avatar
Arnaud Meurgues
K. Ahausse wrote:

Si une solution, au moins équivalente à VC++, existe sous Linux, un énorme
merci à celui qui pourrait la dévoiler.


Que vaut le plugin C++ d'Eclipse ?

--
Arnaud
(Supprimez les geneurs pour me répondre)

Avatar
Richard Delorme

Si une solution, au moins équivalente à VC++, existe sous Linux, un énorme
merci à celui qui pourrait la dévoiler.


Dans la rubrique usine à gaz à la Visual c++, on trouve

- kdevelop (orienté KDE, mais le plus complet) :

http://www.kdevelop.org/index.html?filename=main.html&set_lang=fr

- anjuta (plus léger et orienté gnome) :

http://anjuta.sourceforge.net/

- eclipse :

http://www.eclipse.org/

Il doit aussi exister d'autres solutions, en particulier propriétaires.

--
Richard

Avatar
Jean-Marc Bourguet
Arnaud Meurgues writes:

K. Ahausse wrote:

Si une solution, au moins équivalente à VC++, existe sous Linux, un énorme
merci à celui qui pourrait la dévoiler.


Que vaut le plugin C++ d'Eclipse ?


Je n'ai pas ete plus loin que voir qu'il ne supportait pas (au sens
francais) mes Makefile.

Pour ce que j'utilise les debuggeurs, gdb/emacs me convient bien. Et
avec du code que j'ai ecrit j'arrive a me debrouiller sans problemes
avec gdb dans un xterm (sur une machine aux US, la derniere fois que
j'ai essaye la latence faisait que les solutions graphiques etaient
moins confortable comme environnement).

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org


Avatar
K. Ahausse
"Richard Delorme" a écrit dans le message de
news:4199ecc2$0$15751$

Si une solution, au moins équivalente à VC++, existe sous Linux, un
énorme


merci à celui qui pourrait la dévoiler.


Dans la rubrique usine à gaz à la Visual c++, on trouve


Usine à gaz ? parle-t-on bien du même produit ?


- kdevelop (orienté KDE, mais le plus complet) :


J'ai testé : un désastre, peut-etre une version plus récente, moins
buggée.


- anjuta (plus léger et orienté gnome) :


J'ai commencé mais j'ai abandonné faute de temps et de doc.


- eclipse :


Pas essayer.


Malheureusement, le manque de temps, m'empêche de verifier la viabilité des
solutions proposés. J'avais beaucoup investi sur KDE mais le résultat en en
dessous de tout : la dernière version que j'avais téléchargée provoquait un
coredump à chaque création d'un nouveau fichier dans un projet, une horreur.


Avatar
K. Ahausse
"Marc Boyer" a écrit dans le message
de news:cncmnn$l3m$
K. Ahausse wrote:
"Marc Boyer" a écrit dans le
message


de news:cncj0u$l3m$
In article <4199c5be$0$3315$, K. Ahausse
wrote:




VI[M]|[X]emacs + etags|ctags


Peut-on classer ce bel assemblage dans la catégorie IDE ?


Pour moi, Xemacs vaut pas mal d'IDE déjà rencontré
(pour mes besoins il s'entend).

C'est sensé faire exactement ça.
Ca marchait très bien en C, comme ce n'est pas exactement mon
besoin, je n'ai pas regardé pour C++.


Désolé, mais ce que j'indiquais n'est pas QUE sensé marcher, cela
fonctionne


parfaitement, avec souplesse, sans distinction C/C++.


J'avais compris. Et en C, ça fonctionne parfaitement. En
C++, je n'ai pas regardé.

Ce qu'il y manque c'est la mise au point aisée comme sous Windows.


Genre ddd ?


'ddd' a été une épouvantable experience. 'insight' est la ce qui a le
mieux marché.


Pour quels besoins ?
Xemacs+etags+gdb offre un certain nombre de fonctionnalités.


Je me faisais une autre vision d'un IDE confortable, mais c'est affaire de
goût.
D'autres, parlant de Microsoft, diront de 'dégoût', mais bon ... pour ma
part je ne veux parler que du plaisir d'utiliser un produit quelque soit le
constructeur.



1 2 3 4 5