title: C++ name space confusion - std:: vs :: vs no prefix on a call to tolower?
body: <p>Why is this?</p>
  
  <p><code>transform(theWord.begin(), theWord.end(), theWord.begin(), std::tolower);</code>  - does not work
  <code>transform(theWord.begin(), theWord.end(), theWord.begin(), tolower);</code>  - does not work</p>
  
  <p>but</p>
  
  <p><code>transform(theWord.begin(), theWord.end(), theWord.begin(), ::tolower);</code>  - does work</p>
  
  <p>theWord is a string. I am <code>using namespace std;</code></p>
  
  <p>Why does it work with the prefix <code>::</code> and not the with the <code>std::</code> or with nothing?</p>
  
  <p>thanks for your help.</p>