Сообщение Вызывается не тот конструктор (их всего 2) от 28.02.2021 15:09
Изменено 28.02.2021 15:11 SVV
Вызывается не тот конструктор (их всего 2)
Всем привет.
упростил свой класс до такого вида:
далее в коде:
Проблема: Вызывается конструктор 1, а нужно чтобы вызывался 2.
Что нужно: сделать чтобы вызывался 2 даже при наличии 1. Это возможно?
P.S. Когда 1 нет, вызывается 2.
упростил свой класс до такого вида:
template<typename T>
class Str3T
{
st m_bufSize;
public:
explicit Str3T(const T* sz) : m_bufSize(1) {}// конструктор 1
template<st N> explicit Str3T(T(*buf)[N]) : m_bufSize(sizeof(buf)/sizeof(T)) {}// конструктор 2
};
далее в коде:
char sz[15];
Str3T<char> s(sz);
Проблема: Вызывается конструктор 1, а нужно чтобы вызывался 2.
Что нужно: сделать чтобы вызывался 2 даже при наличии 1. Это возможно?
P.S. Когда 1 нет, вызывается 2.
Вызывается не тот конструктор (их всего 2)
Всем привет.
упростил свой класс до такого вида:
далее в коде:
Проблема: Вызывается конструктор 1, а нужно чтобы вызывался 2.
Что нужно: сделать чтобы вызывался 2 даже при наличии 1. Это возможно?
P.S. Когда 1 нет, вызывается 2.
упростил свой класс до такого вида:
typedef size_t st;
template<typename T>
class Str3T
{
st m_bufSize;
public:
explicit Str3T(const T* sz) : m_bufSize(1) {}// конструктор 1
template<st N> explicit Str3T(T(*buf)[N]) : m_bufSize(sizeof(buf)/sizeof(T)) {}// конструктор 2
};
далее в коде:
char sz[15];
Str3T<char> s(sz);
Проблема: Вызывается конструктор 1, а нужно чтобы вызывался 2.
Что нужно: сделать чтобы вызывался 2 даже при наличии 1. Это возможно?
P.S. Когда 1 нет, вызывается 2.