У меня есть шаблонный класс с тремя параметрами: int, typename, template typename. Для этого класса я хочу предоставить только первый параметр, int: например: Obj.
Я пытаюсь, чтобы компилятор вывел второй и третий параметры через конструктор.
Код: Выделить всё
template struct dummy{};
template
struct Obj
{
explicit Obj(S* some_data) : data{ some_data } {}
S* data;
};
template
struct Obj2
{
explicit Obj2(S* some_data) : data{ some_data } {}
S* data;
};
int main()
{
dummy* x;
Obj2 obj2{ x }; // deduces the parameters
Obj obj{ x }; // doesn't deduce anymore, why?
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... n-this-cas
Мобильная версия