Почему в этом случае я не могу вывести некоторые параметры шаблона, а некоторые предоставить? [дубликат]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему в этом случае я не могу вывести некоторые параметры шаблона, а некоторые предоставить? [дубликат]

Сообщение Anonymous »

Ссылка на код: compiler_explorer
У меня есть шаблонный класс с тремя параметрами: 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»