OVH Cloud OVH Cloud

membres d'une base dépendante ?

48 réponses
Avatar
Dimitri Papadopoulos-Orfanos
Bonjour,

Le code suivant n'est plus compilé par des compilateurs récents tels que
gcc 3.4 :

template <typename T> struct A {
int x;
};
template <typename T> struct B : public A<T> {
void foo() { x = 1; }
};

L'erreur est:
foo.cc: In member function `void B<T>::foo()':
foo.cc:5: error: `x' undeclared (first use this function)
foo.cc:5: error: (Each undeclared identifier is reported only once for each
function it appears in.)

Les notes de gcc 3.4 parlent bien de ce changement :
In a template definition, unqualified names will
no longer find members of a dependent base.

Toutefois je n'arrive pas à trouver le paragraphe du chapitre 14 de la
norme C++ qui le justifient. C'est probablement caché dans 14.6 mais
j'ai du mal à suivre les paragraphes en question... Quelqu'un peut-il me
montrer le paragraphe qui s'applique à ce cas ?

Qu'est-ce qu'une "base dépendante" ? Pourquoi faire un cas spécial pour
les templates ?

Merci d'avance,
Dimitri

8 réponses

1 2 3 4 5
Avatar
Richard Delorme

Java ne marche pas,


Ça c'est un troll, qui ne mérite même pas d'être commenté.


C# est propriétaire,


Ça c'est faux. Les spécifications sont standardisées (ISO/IEC 23270) et
il existe une implémentation libre :
http://www.go-mono.com/c-sharp.html


Objective-C est mort (et ne donnait de toute façon pas la sécurité des types)


Objective-C est toujours le langage de base pour les applications MacOS-X.


et Python n'est qu'un langage de script -- je ne le connais pas bien, mais je doute qu'il
convient pour de gros projets.


Ceci est aussi faux. Python convient pour des projets de toutes tailles.
Quelques exemples d'applications :
http://pythonology.org/success
http://pbf.strakt.com/success

--
Richard

Avatar
Gabriel Dos Reis
Richard Delorme writes:

| > C# est propriétaire,
|
| Ça c'est faux. Les spécifications sont standardisées (ISO/IEC 23270)
| et il existe une implémentation libre :
| http://www.go-mono.com/c-sharp.html

C'est beau de commenter quand on n'est pas en prise avec la réalité
des choses.

-- Gaby
Avatar
Gabriel Dos Reis
Marc Boyer writes:

| In article , Gabriel Dos Reis wrote:
| > Marc Boyer writes:
| >| Je prends note. C'est à dire que C++ a une nouvelle communauté
| >| de << user base >>, et que c'est enrichissant pour le langage.
| >
| > « Nouveaux utilisateurs » impliquent « nouvelles sortes de retour »
|
| <je-cherche-la-merde>
| Et c'est eux qui voulaient une GUI standard pour C++ ?
| </je-cherche-la-merde>

D'après les informations dont je dispose, non. Pourquoi cette question ?

-- Gaby
Avatar
Gabriel Dos Reis
writes:

| Ce qui me deplaît un peu. Je n'aime pas qu'on n'ait pas de choix en ce
| qui concerne le langage.

Moi non plus.

| Ada était (et est encore, pour l'instant) un
| alternatif viable à C++, pour un bon nombre de projets. Réalistiquement,
| dans la mésure où de nouveaux projets ne s'en servent plus, l'offre au
| niveau des outils va baisser, ce qui veut dire qu'à la longue, il ne

D'après des conversations directes que j'ai eu avec des réprésentants
de « gros utilisateurs » d'ada, ils abandonnent justement à cause des
outils...

| serait pas un alternatif viable. C'est en fait un cercle vicieux --

Il semble bien.

-- Gaby
Avatar
Jean-Marc Bourguet
Gabriel Dos Reis writes:

D'après des conversations directes que j'ai eu avec des réprésentants
de « gros utilisateurs » d'ada, ils abandonnent justement à cause des
outils...


Ca ne m'etonne pas. Il y a pour le moment deux mouvements dans les
environnements de developpement ici: de Sun vers Linux et
l'utilisation de Windows comme plateforme de developpement pour les
tout nouveau projets (ceux qui ne recupere rien -- ou presque,
quelques centaines de milliers de lignes de code -- de l'existant)
plutot que Sun.

Le premier est une question de cout et de puissance et est limite par
la qualite des outils.

Le deuxieme est une question d'environnement (et de qualite des outils
(apparemment VC++ est nettement superieur comme environnement de
developpement a Workshop/Forte -- j'ai pas essaye et les personnes qui
sont en train de le faire dans mon entourage ont plutot des avis
mitiges, il y a des plus et des moins mais c'est peut-etre
"simplement" des habitudes a casser).

Ca n'empeche pas que le deployement se fait toujours tres
principalement sous Sun, HP, IBM avec Linux qui monte et dont je ne
percois pas bien l'importance relative.

Et ca c'est pour du C++. Alors un langage plus de niche comme Ada.

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
kanze
Gabriel Dos Reis wrote in message
news:...
writes:

| Ada était (et est encore, pour l'instant) un
| alternatif viable à C++, pour un bon nombre de projets. Réalistiquement,
| dans la mésure où de nouveaux projets ne s'en servent plus, l'offre au
| niveau des outils va baisser, ce qui veut dire qu'à la longue, il ne

D'après des conversations directes que j'ai eu avec des réprésentants
de « gros utilisateurs » d'ada, ils abandonnent justement à cause des
outils...


Le seul gros utilisateur avec qui j'ai parlé (il y a cinq ou six ans) me
disait qu'ils abandonnaient l'Ada à cause des difficultés à trouver des
programmeurs qui le connaissaient.

Remarque, pour certains gros utilisateurs, un programmeur, c'est un
outil comme un autre.

--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Avatar
James Kanze
Richard Delorme writes:


|> > Java ne marche pas,

|> Ça c'est un troll, qui ne mérite même pas d'être commenté.

Un peu. N'empèche qu'on l'a essayé dans des domaines des plus variés, et
il n'a pas supporté l'épreuve. Aujourd'hui, son utilisation se limite
pour la plupart à des domaines limités. À mon avis, moins qu'il ne
mérite ; je le verrais bien que langage de programmation des clients de
toutes sortes.

|> > C# est propriétaire,

|> Ça c'est faux. Les spécifications sont standardisées (ISO/IEC 23270)
|> et il existe une implémentation libre :
|> http://www.go-mono.com/c-sharp.html

Il y a la théorie, et il y a la pratique.

Java, dans la théorie, est plus propriétaire -- Sun l'a rétiré de toute
normalisation. Dans la pratique, si c'est bien vrai que ni toi ni moi
ne pouvons avoir la moindre influence sur son évolution, Sun écoute bien
des boîtes comme IBM. C'est propriétaire, mais dans la pratique, les
décisions ne sont pas le fait d'une seule boîte, mais se trouvent
partagées entre un petit nombre de grosses boîtes.

Et aujourd'hui, il est, dans la pratique, possible de faire du Java sans
Sun. Tandis que le C# sans Microsoft ?

|> > Objective-C est mort (et ne donnait de toute façon pas la sécurité
|> > des types)

|> Objective-C est toujours le langage de base pour les applications
|> MacOS-X.

C'est pour ça que Mac cherche toujours des programmeurs C++.

|> > et Python n'est qu'un langage de script -- je ne le connais pas
|> > bien, mais je doute qu'il convient pour de gros projets.

|> Ceci est aussi faux. Python convient pour des projets de toutes
|> tailles. Quelques exemples d'applications :
|> http://pythonology.org/success
|> http://pbf.strakt.com/success

On peut, s'il le faut, tout faire. J'ai vu de grosses applications en
Basic, aussi.

Raisonablement, plus l'application est gros (et implique un nombre élevé
de développeurs), plus il faut :
- une encapsulation au niveau des livrables partielles, c-à-d des
bibliothèques, etc., et
- des vérifications à la compilation, c-à-d un typage strict.

D'après mon expérience, quand les projets deviennent vraiment gros, même
le C++ est déjà trop lache à cet égard. Dans la pratique, en revanche,
on n'a rarement un meilleur alternatif. (Je crois que Ada conviendrait,
mais pour diverses raisons politiques, il n'est pas toujours une
option.)

--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Avatar
Arnaud Meurgues
James Kanze wrote:

Et aujourd'hui, il est, dans la pratique, possible de faire du Java sans
Sun. Tandis que le C# sans Microsoft ?


http://www.go-mono.com/c-sharp.html
http://www.southern-storm.com.au/portable_net.html

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

1 2 3 4 5