pourquoi ce code ne compile pas ? (MACOSX user asked)

pourquoi ce code ne compile pas ? (MACOSX user asked) - C++ - Programmation

Marsh Posté le 12-06-2004 à 09:41:43    

Code :
  1. class MyClass {};
  2. void function (int a, int b, MyClass &c){}
  3. void error () {
  4. function (1, 2, MyClass());
  5. }


 
Ca compile sous le visual, mais pas sous g++ 3.3 :
 

kadreg@rincevent:~$ g++-3.3 -c ./nonconst.cpp
nonconst.cpp: In function `void error()':
nonconst.cpp:7: error: could not convert `{}' to `MyClass&'
nonconst.cpp:4: error: in passing argument 3 of `void function(int, int,
   MyClass& )'
kadreg@rincevent:~$


Message édité par kadreg le 12-06-2004 à 10:44:05

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-06-2004 à 09:41:43   

Reply

Marsh Posté le 12-06-2004 à 10:06:58    

Visual ca puduku, et le message est assez explicite :
 

Code :
  1. class MyClass {};
  2. void function (int a, int b, MyClass &c){}
  3. void error ()
  4. {
  5.   MyClass c;
  6.   function (1, 2, c);
  7. }


 
sinon est ce que ta MyClasse a un constructeur par défaut sans arguments ?

Reply

Marsh Posté le 12-06-2004 à 10:10:30    

Code :
  1. class MyClass {
  2. public:
  3. MyClass (){}
  4. };
  5. void function (int a, int b, MyClass &c){}
  6. void error () {
  7. function (1, 2, MyClass());
  8. }


 

kadreg@rincevent:~$ g++-3.3 -c ./nonconst.cpp
nonconst.cpp: In function `void error()':
nonconst.cpp:10: error: could not convert `MyClass()' to `MyClass&'
nonconst.cpp:7: error: in passing argument 3 of `void function(int, int,
   MyClass& )'
kadreg@rincevent:~$


 
Ca ne change pas fondamentallement on problème [:spamafote]
 


Message édité par kadreg le 12-06-2004 à 10:11:19

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-06-2004 à 10:14:38    

T'as pas oublié un const quelque part?
 

Code :
  1. class MyClass {};
  2.  
  3.   void function (int a, int b, const MyClass &c){}
  4.  
  5.   void error () {
  6.      function (1, 2, MyClass());
  7. }


Message édité par Ace17 le 12-06-2004 à 10:15:21
Reply

Marsh Posté le 12-06-2004 à 10:17:13    

je sais pas c'est quoi votre version de g++ mais chez moi, le 3.3 et le 3.4 donne le message d'erreur qui va bien : à savoir que les objets temporaires doivent être constant, donc MaClasse & ne fonctionne pas

Reply

Marsh Posté le 12-06-2004 à 10:21:21    

taz, tu as une bonne URL sur l'écriture de code portable ? Je suis à la recherche des différences de comportement visual/g++


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-06-2004 à 10:21:48    

Ace17 a écrit :

T'as pas oublié un const quelque part?


 
c'est voulu [:zebra33]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-06-2004 à 10:24:06    

kadreg a écrit :

taz, tu as une bonne URL sur l'écriture de code portable ? Je suis à la recherche des différences de comportement visual/g++


http://www.mozilla.org/hacking/portable-cpp.html

Reply

Marsh Posté le 12-06-2004 à 10:25:00    


 
Excellent :love:


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-06-2004 à 10:26:28    

kadreg a écrit :

c'est voulu [:zebra33]


C'est voulu??? Pourquoi ne peux tu pas mettre un const?

Reply

Marsh Posté le 12-06-2004 à 10:26:28   

Reply

Marsh Posté le 12-06-2004 à 10:26:52    

le pire c'est que les solutions portables sont pires que le soit disant problème

Reply

Marsh Posté le 12-06-2004 à 10:27:36    

kadreg a écrit :

c'est voulu [:zebra33]

ben alors ça marchera pas ... qu'est-ce que tu pourrais bien faire d'une copie jetable ?

Reply

Marsh Posté le 12-06-2004 à 10:29:12    

Taz a écrit :

le pire c'est que les solutions portables sont pires que le soit disant problème


 
Ben les solutions portables .... déja quand on voit ca ....
"Don't use C++ templates."
"Don't use exceptions."
... on se demande si on est toujours en train de profiter du fait que l'on fait du C++

Reply

Marsh Posté le 12-06-2004 à 10:31:21    

Ace17 a écrit :


... on se demande si on est toujours en train de profiter du fait que l'on fait du C++


 
C'est du C with classes [:spamafote]
 
Et les don't use name space, don't une RTTI et cie...
 


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-06-2004 à 10:32:36    

kadreg a écrit :

C'est du C with classes [:spamafote]
 
Et les don't use name space, don't une RTTI et cie...

mais je crois qu'on a tous compris que c'était du bidon ces conseils

Reply

Marsh Posté le 12-06-2004 à 10:32:59    

Taz a écrit :

mais je crois qu'on a tous compris que c'était du bidon ces conseils


 
oui.
 
Une autre URL ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-06-2004 à 10:34:13    

Juste une remarque, je prépare un document sur comment faire du code portable de kalitai, et mon premier conseil est : "regarder dans votre doc à quel standard correspond ce que vous voulez appeler".


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-06-2004 à 10:34:57    

C'est pas du bidon malheureusement. Le code source de Mozilla respecte toutes ces regles a la con.
Si tu cherches a faire un code qui compile sous tous les compilos C++ qui existent, tu dois les respecter.

Reply

Marsh Posté le 12-06-2004 à 10:36:01    

Je veux un code qui compile sur tous les compilos moderne. Le pire étant le visual 6 (mais c'est plus par legacy qu'autre choses), donc, j'utilise les templates, les RTTI (ne pas oublier /GX) et autre joyeusetées modernes.


Message édité par kadreg le 12-06-2004 à 10:36:34

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-06-2004 à 10:37:41    

Meme sur les Macs?
 
"#include statements should include only simple filenames."
"Macs complain about assignments in boolean expressions."
"Every source file must have a unique name."

Reply

Marsh Posté le 12-06-2004 à 10:38:37    

macOSX n'a pas ces problèmes non ? [:spamafote]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-06-2004 à 10:39:32    

devine :D

Reply

Marsh Posté le 12-06-2004 à 10:43:48    

Je lance un appel ayu peuple :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-06-2004 à 10:47:34    

C'est pour ça que nraynaud fait du java sur son mac.

Reply

Marsh Posté le 12-06-2004 à 10:53:18    

Je crois qu'il va falloir redéfinir la notion de "code portable", en "code portable sur les compilateurs raisonnables"(i.e ceux qui sont aux normes) :D


Message édité par Ace17 le 12-06-2004 à 10:53:53
Reply

Marsh Posté le 12-06-2004 à 11:20:47    

Ace17 a écrit :

Meme sur les Macs?
 
"#include statements should include only simple filenames."
"Macs complain about assignments in boolean expressions."
"Every source file must have a unique name."


 
c'est quoi ces conneries ?

Reply

Marsh Posté le 12-06-2004 à 11:59:36    

C'est tiré de l'url donnée plus haut

Reply

Marsh Posté le 12-06-2004 à 12:20:55    

bon vous êtes saoulant
 
ARM §8.4.3 et §13
 
 
c'est VC6 qui a tort de compiler ça.

Reply

Marsh Posté le 12-06-2004 à 13:00:56    

Tu veux dire que ces trois restrictions appartiennent a la norme?

Reply

Marsh Posté le 12-06-2004 à 13:13:09    

quelles 3 restrictions ? moi je parlais de l'exemple de code du premier message. le reste c'est de la branlette des abruits de mozilla. ils me font marrés « ouais on est un projet libre phare » ... ben faudrait voir à choisir des icônes libres alors :o

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed