Conversão de tipo implícita com modelo
Eu tenho um modeloclass A
template <unsigned int m>
class A
{
public:
A(int) {}
};
Que tem um construtor deint
. E eu tenho uma operação:
template<unsigned int m>
A<m> operator+(const A<m>&, const A<m>&)
{
return A<m>(0);
}
Mas quando ligo para:
A<3> a(4);
A<3> b = a + 5;
A<3> c = 5 + a;
Eu gostariaint
ser convertido implicitamente em A, mas os compiladores geram err
Existe alguma maneira elegante de ativar a conversão implícita sem usar soluções como:
a + A<m>(5)
operator+<3>(a, 5)