Syntax Code Compiled Incorrectly
SoloCDM <[email protected]> Wed, 11 Sep 2002 13:39:47 -0600
| Newsgroups | org.kernel.vger.linux-gcc |
|---|---|
| Message-ID | <[email protected]> |
Recently I tried to compile sstrcom.cpp with Kernel 2.2.20 on Linux
Mandrake 8.0. I used "g++ sstrcom.cpp" and received the following
errors:
sstrcom.cpp: In function `int main ()':
sstrcom.cpp:24: no matching function for call to `basic_string<char,
string_char_traits<char>, __default_alloc_template<true, 0> >::compare
(int, int, string &, int, int)'
/usr/include/g++-3/std/bastring.cc:398: candidates are: int
basic_string<charT, traits, Allocator>::compare (const
basic_string<charT, traits, Allocator> &, unsigned int = 0, unsigned
int = basic_string<charT, traits, Allocator>::npos) const [with charT
=
char, traits = string_char_traits<char>, Allocator =
__default_alloc_template<true, 0>]
/usr/include/g++-3/std/bastring.cc:417: int
basic_string<charT, traits, Allocator>::compare (const charT *,
unsigned int, unsigned int) const [with charT = char, traits =
string_char_traits<char>, Allocator = __default_alloc_template<true,
0>]
/usr/include/g++-3/std/bastring.h:402: int
basic_string<charT, traits, Allocator>::compare (const charT *,
unsigned int = 0) const [with charT = char, traits =
string_char_traits<char>, Allocator = __default_alloc_template<true,
0>]
Everything points to "n = susername.compare( 0, 2, saname, 0, 2 );",
even though the immediate line preceding it doesn't have any errors.
What is wrong with the attached file?
The output indicates that a function doesn't exist in <string>; if so,
what library needs to be included?
--
Note: When you reply to this message, please include the mailing
list and/or newsgroup address and my email address in To:
*********************************************************************
Signed,
SoloCDM
sstrcom.cpp
(text/plain, 814 B)
// sstrcom.cpp
// Comparing string objects
#include <iostream>
#include <string>
using namespace std;
/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
int main() {
string saname = "George", susername;
std::cout << "Enter your first name: ";
cin >> susername;
if ( susername == saname )
std::cout << "Greetings, George\n";
else if ( susername < saname )
std::cout << "You come before George\n";
else
std::cout << "You come after George\n";
int n = susername.compare( saname );
n = susername.compare( 0, 2, saname, 0, 2 );
std::cout << "The first two letters of your name ";
if ( n == 0 )
std::cout << "match ";
else if ( n < 0 )
std::cout << "come before ";
else
std::cout << "come after ";
std::cout << saname.substr( 0, 2 ) << endl;
return 0;
}