Вызывается не тот конструктор (их всего 2)
От: SVV Беларусь  
Дата: 28.02.21 15:09
Оценка:
Всем привет.

упростил свой класс до такого вида:
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.
Отредактировано 28.02.2021 15:13 SVV . Предыдущая версия . Еще …
Отредактировано 28.02.2021 15:11 SVV . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.