🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.help
Article #813

g++ 2.7.0: bool vs. string vs. const char* overloading

#813
From: Per Abrahamsen
Date: Thu, 02 Nov 1995 13:45
53 lines
2663 bytes
Can anyone explain to me why two doIt calls below select different
overloaded functions?

------------- bug.C -------------
#include <iostream.h>
#include <string>

void doIt (string)
{
  cout << "Gotta string\n";
}

void doIt (bool)
{
  cout << "Gotta bool\n";
}

int main ()
{
  const char* const cp = "Hi!";
  doIt (cp);
  doIt ("Hi!");
  return 0;
}
--------------------------------

daisy% c++ -Wall -g  -v -o bug bug.C
 gcc -Wall -g -v -o bug bug.C -lstdc++
Reading specs from /pack/gcc/lib/gcc-lib/sparc-sun-solaris2.4/2.7.0/specs
gcc version 2.7.0
 /pack/gcc/lib/gcc-lib/sparc-sun-solaris2.4/2.7.0/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=7 -Dsun -Dsparc -Dunix -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun__ -D__sparc__ -D__unix__ -D__svr4__ -D__SVR4 -D__GCC_NEW_VARARGS__ -D__sun -D__sparc -D__unix -Asystem(unix) -Asystem(svr4) -Acpu(sparc) -Amachine(sparc) -g -Wall bug.C /var/tmp/cca000ah.ii
GNU CPP version 2.7.0 (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /pack/gcc/lib/g++-include
 /usr/local/include
 /pack/gcc/sparc-sun-solaris2.4/include
 /pack/gcc/lib/gcc-lib/sparc-sun-solaris2.4/2.7.0/include
 /usr/include
End of search list.
 /pack/gcc/lib/gcc-lib/sparc-sun-solaris2.4/2.7.0/cc1plus /var/tmp/cca000ah.ii -quiet -dumpbase bug.cc -g -Wall -version -o /var/tmp/cca000ah.s
GNU C++ version 2.7.0 (sparc) compiled by GNU C version 2.7.0.
 /usr/ccs/bin/as -V -Qy -s -o /var/tmp/cca000ah1.o /var/tmp/cca000ah.s
/usr/ccs/bin/as: SC3.1 dev 09 May 1994
 /usr/ccs/bin/ld -V -Y P,/usr/ccs/lib:/usr/lib -Qy -o bug /pack/gcc/lib/gcc-lib/sparc-sun-solaris2.4/2.7.0/crt1.o /pack/gcc/lib/gcc-lib/sparc-sun-solaris2.4/2.7.0/crti.o /usr/ccs/lib/values-Xa.o /pack/gcc/lib/gcc-lib/sparc-sun-solaris2.4/2.7.0/crtbegin.o -L/pack/gcc/lib/gcc-lib/sparc-sun-solaris2.4/2.7.0 -L/usr/ccs/bin -L/usr/ccs/lib -L/pack/gcc/lib /var/tmp/cca000ah1.o -lstdc++ -lgcc -lc -lgcc /pack/gcc/lib/gcc-lib/sparc-sun-solaris2.4/2.7.0/crtend.o /pack/gcc/lib/gcc-lib/sparc-sun-solaris2.4/2.7.0/crtn.o

ld: Software Generation Utilities (SGU) SunOS/ELF (LK-1.4 (S/I))
daisy% bug
Gotta bool
Gotta string

Compilation finished at Thu Nov  2 14:37:47
Technical Details
Message-ID: <199511021344.OAA02487@ssv4.dina.kvl.dk>
Path: arc1-ca.pugleaf.net!dina.kvl.dk!abraham

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!dina.kvl.dk!abraham
From: abraham@dina.kvl.dk (Per Abrahamsen)
Newsgroups: gnu.g++.help,comp.lang.c++
Subject: g++ 2.7.0: bool vs. string vs. const char* overloading
Date: 2 Nov 1995 08:45:00 -0500
Organization: Gatewayed from the GNU Project mailing list help-g++@prep.ai.mit.edu
Sender: daemon@cis.ohio-state.edu
Distribution: world
Message-ID: <199511021344.OAA02487@ssv4.dina.kvl.dk>