Я хотел иметь неявное преобразование на двух уровнях. Следующий фрагмент кода является прототипом проблемы, с которой я столкнулся.Вложенное неявное преобразование в C++
//Sources
class A
{
public:
void print()
{
std::cout <<"Class A"<< std::endl;
}
operator int()
{
return 1;
}
};
class B
{
public:
void print()
{
std::cout <<"Class B"<< std::endl;
}
operator A()
{
return A();
}
};
class C
{
public:
void print()
{
std::cout <<"Class C"<< std::endl;
}
operator B()
{
return B();
}
};
void print_(A a)
{
a.print();
}
//driver
int main(int argc, char* argv[])
{
C c;
//print_(c); // compilation error
//print_(C()); // compilation error
print_(c.operator framework::configuration::B()); //when explicitly invoked it worked
return 0;
}
Я рассмотрел пример, приведенный в следующих ссылках, был убежден, что это достижимо.
How do conversion operators work in C++?
Получил это! Благодарю. – jazaman