[C++] kan functie niet vinden

Pagina: 1
Acties:

  • Akerboom
  • Registratie: Juni 2001
  • Laatst online: 29-07 13:20

Akerboom

Codito, ergo sum

Topicstarter
In het hoofdprogramma roep ik een functie aan binnen een try {}:

C++:
1
try { smtpReply(atoi(replyCode)); } catch {...


In m'n functions.h (die ik include in het hoofd programma) staat:
C++:
1
void smtpReply(int replyCode);


In functions.cpp staat:
C++:
1
void smtpReply(int replyCode) { }


De compiler blijft de volgende error code geven:
no match for call to `(std::string) (int)'

Ik heb geen idee hoe die bij (std::string) als return type komt?!
Wat ik ook verander aan de functie, hij blijft die error geven.. ook als ik van het return type std::string maak.

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Van welk type is replyCode in atoi(replyCode) ?

https://fgheysels.github.io/


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 17:14
atoi header niet ge-include?

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

MSalters schreef op 29 October 2003 @ 12:40:
atoi header niet ge-include?
Lijkt me sterk dat dat die error tot gevolg zou hebben, dan zou ik eerder "Undefined function atoi(...)" verwachten. Ik denk persoonlijk ook dat replyCode van een vreemd type is waardoor de compiler zich stukloopt op een stapel impliciete conversies die hij niet uit kan voeren.

We hebben reeds eerder geconstateerd dat TormentoR's compiler achterlijke meldingen produceert dus ik hou nog alle mogelijkheden open ;)

Professionele website nodig?


  • Akerboom
  • Registratie: Juni 2001
  • Laatst online: 29-07 13:20

Akerboom

Codito, ergo sum

Topicstarter
whoami schreef op 29 October 2003 @ 12:11:
Van welk type is replyCode in atoi(replyCode) ?
C++:
1
char *replyCode = new char[4];
curry684 schreef op 29 October 2003 @ 12:50:
[...]

We hebben reeds eerder geconstateerd dat TormentoR's compiler achterlijke meldingen produceert dus ik hou nog alle mogelijkheden open ;)
Ik gebruik gewoon gcc 'GNU project C and C++ compiler'

[ Voor 45% gewijzigd door Akerboom op 29-10-2003 12:56 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Bliep... je zegt nu dus dat dit niet compileert:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <string>

void smtpReply(int replyCode) 
{
}

int main()
{
char    Piet[] = "684";
smtpReply(atoi(Piet));
return 0;
}

Dat hoort echt te werken hoor :D

Professionele website nodig?


  • Akerboom
  • Registratie: Juni 2001
  • Laatst online: 29-07 13:20

Akerboom

Codito, ergo sum

Topicstarter
curry684 schreef op 29 October 2003 @ 12:58:
Bliep... je zegt nu dus dat dit niet compileert:

[knip] voorbeeld code[/knip]

Dat hoort echt te werken hoor :D
idd, maar je vergeet de try!

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string>
#include <stdexcept>

void smtpReply(int replyCode)
{
}

int main()
{
try {
char    Piet[] = "684";
smtpReply(atoi(Piet));
} catch (std::out_of_range r) { }
return 0;
}



[edit]

Nevermind...

[ Voor 10% gewijzigd door Akerboom op 29-10-2003 13:11 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Het exacte stukje code dat jij geeft compileert hier onder OpenVMS (wat een GCC-derivant gebruikt als compiler) perfect zoals het hoort. Die try/catch heeft ook totaal geen invloed op de gebruikte types dus vandaar dat ik die had weggelaten.

Compileren mijn en jouw geisoleerde voorbeelden allebei niet bij jou?

Professionele website nodig?


  • Akerboom
  • Registratie: Juni 2001
  • Laatst online: 29-07 13:20

Akerboom

Codito, ergo sum

Topicstarter
curry684 schreef op 29 October 2003 @ 13:09:
Het exacte stukje code dat jij geeft compileert hier onder OpenVMS (wat een GCC-derivant gebruikt als compiler) perfect zoals het hoort. Die try/catch heeft ook totaal geen invloed op de gebruikte types dus vandaar dat ik die had weggelaten.

Compileren mijn en jouw geisoleerde voorbeelden allebei niet bij jou?
Nee, ik deed make... en kreeg weer de error... ipv make test :)

Maargoed, het kleine voorbeeld stukje laat wel zien dat dat deel van de code wel klopt... dus het probleem ligt er buiten.

Ik zoek verder...

[update]
|:(

het commando 'grep smtpReply *' gaf de oplossing 8)7

'mailer.cpp: string message, email, smtpReply;'


Weer zonden van jullie en mijn tijd... :X

[ Voor 13% gewijzigd door Akerboom op 29-10-2003 13:21 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Heb je de functie smtpReply niet op de een of andere manier eng overloaded? Gebeurt de error wel exact op die ene regel?

Professionele website nodig?


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

Kun je de hele functie eens posten?
.edit: ok, opgelost dus :)

[ Voor 29% gewijzigd door .oisyn op 29-10-2003 13:25 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Goh ja op die manier klopt de error ook nog exact :z

* curry684 weet plots weer waarom ie altijd prefixes gebruikt voor alle variabelen...

[ Voor 44% gewijzigd door curry684 op 29-10-2003 13:28 ]

Professionele website nodig?

Pagina: 1