struct Bob
{
template<class T>
void operator () () const
{
T t;
}
template<class T>
operator T () const
{
T t;
return t;
}
};
このようにボブの 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
質問 テンプレートパラメータで直接呼び出す方法 OR 不可能です。ラッピング機能を使用した回避策があることは知っています。