String 对_字符串的调用不明确-可能吗?
这是我的打印操作员:String 对_字符串的调用不明确-可能吗?,string,c++11,operator-overloading,tostring,String,C++11,Operator Overloading,Tostring,这是我的打印操作员: ostream& operator<<(ostream& os, const Card& card) { string str; if(cardValueCorrect(card._value)){ str += to_string(card._value); //////////////////////////////////// } else {
ostream& operator<<(ostream& os, const Card& card) {
string str;
if(cardValueCorrect(card._value)){
str += to_string(card._value); ////////////////////////////////////
} else {
str += card._identier;
}
str += suitToChar(card._suit);
return os << str;
}
ostream&operator1-确保包括所有标题:
2-尝试使用命名空间std删除行,并使用显式std命名空间规范
3-仅出于测试目的,尝试使用显式模板专门化:
std::to_字符串(卡片._值)代码>你能给我们看更多的代码吗?上面这个带重音的小“a”是什么?试着把“std::”放在“to_string”前面。关于a,不知道,忽略它。我的错误是,添加std::没有改变任何东西,仍然有那个问题。我认为它没有看到to_string的问题(并在其他没有int类型的地方找到它)因为所有的头都是ok的,我只使用了显式的std::to_string等等…但是当我尝试写std::to_string(card._value)时;上面说无法解析to_字符串。您能提供更多信息吗?您正在使用的编译器和平台、编译器标志以及有关代码结构的更多信息。否则,很难说更多。错——可能是std标志。
Card.cpp: In function âstd::ostream& operator<<(std::ostream&, const Card&)â:
Card.cpp:160: error: call of overloaded âto_string(const int&)â is ambiguous
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2616: note: candidates are: std::string std::to_string(long double)
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2610: note: std::string std::to_string(long long unsigned int)
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2604: note: std::string std::to_string(long long int)