• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: tolower
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tolower


  • Subject: Re: tolower
  • From: Scott Thompson <email@hidden>
  • Date: Thu, 16 Jun 2005 09:40:03 -0500


On Jun 15, 2005, at 7:35 PM, Tim Conkling wrote:

Another CW->Xcode transition problem:

I have a function:

void MAKELOWERCASE(string s)
{
    transform(s.begin(), s.end(), s.begin(), tolower);
}

which produces the following error:

error: no matching function for call to 'transform (__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, <unknown type>)'

Changing the body of the function to:

 transform(s.begin(), s.end(), s.begin(), ::tolower);

fixes things. Why is this?

It appears that "tolower" is defined in more than one namespace. That shows up to the compiler as an ambiguously defined function and the transform template doesn't know which one it should use (the computer can't create a version of transform whose parameter matches because the last parameter is ambiguous). When you put the scope resolution operator on it, it is able to resolve that to an actual function and continue on.


Scott

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >tolower (From: Tim Conkling <email@hidden>)

  • Prev by Date: Re: Predefined compiler symbols
  • Next by Date: Re: CopyCStringToPascal
  • Previous by thread: tolower
  • Next by thread: Using libexpat from the system
  • Index(es):
    • Date
    • Thread