У меня есть шаблон class A
template <unsigned int m>
class A
{
public:
A(int) {}
};
У кого есть конструктор из int
. И у меня есть операция:
template<unsigned int m>
A<m> operator+(const A<m>&, const A<m>&)
{
retrun A<m>(0);
}
Но когда я звоню:
A<3> a(4);
A<3> b = a + 5;
A<3> c = 5 + a;
Я бы хотел, чтобы int
был неявно преобразован в A, но компиляторы вызывают ошибку.
Есть ли элегантный способ включить неявное преобразование без использования таких решений, как:
-
a + A<m>(5)
-
operator+<3>(a, 5)