我为我正在处理的一个类编写了一个 to_string() 方法。它应该与运算符重载一起使用以打印类对象。但如果我做这样的事情:
std::ostringstream oss;
oss << Jd(0.5);
BOOST_CHECK_EQUAL( oss.str(), std::string("JD 0.5") );
它不会调用我的 to_string() 函数,而是转换为我为另一个类所拥有的另一个运算符重载。有没有办法可以将我的 to_string 链接到隐式打印 Jd 对象,即使它不直接调用 to_string()?这也是我的 to_string() 方法:
std::string Jd::to_string() const {
ostringstream oss;
oss << "JD " << jd_;
return oss.str();
}