Неявное преобразование типов с шаблоном

У меня есть шаблон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>&)
{
    return 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)

Ответы на вопрос(4)

Ваш ответ на вопрос