struct Bob
{
template<class T>
void operator () () const
{
T t;
}
template<class T>
operator T () const
{
T t;
return t;
}
};
我可以像这样直接调用 Bob 的 operator()
Bob b;
b.operator()<int>();
如何使用这样的特定模板参数直接调用转换运算符?
Bob b;
std::string s = b.???<std::string>();
无法使用 static_cast
Bob b;
std::string s = static_cast<std::string>(b);
error: call of overloaded ‘basic_string(Bob&)’ is ambiguous
问题 如何使用模板参数直接调用或不可能。我知道有使用包装功能的解决方法。