Global operator<< takes 2 parameters; the left hand side, and the right. Your first example takes only 1 parameter, which the compiler refuses to accept.
For the second, the compiler is complaining it can't find an operator<< that works for an std::string. Did you include <string>?