Ambiguities will not be the result of neither failing to include "iostream", nor will it be the result of not declaring the said identifier. These errors, in your case, means the compiler was not able to choose one of the overloaded "ostream::operator << ( )" operators based on the actual parameter. In other words, the actual parameter given to "std::cout" was compatible (convertible) with two or more overloads of its "operator << ( )" and, therefore, was not able to choose which overload to call; thus, ambiguity.