Генерация значения аргумента шаблона

У меня есть шаблон класса:

template<short modelID>
class Model
{
public:
    static constexpr short STID = modelID;

    Model() {};
};

При создании экземпляров Model я указываю modelID:

auto model0 = Model<0>();

auto model1 = Model<1>();
auto model10 = Model<1>();

Или могу даже так:

auto model11 = Model<decltype(model1)::STID>();

Узнал про такую штуку - Class template argument deduction, но после первого-второго прочтения пока не могу понять - возможно ли создавать экземпляры не указывая аргумент шаблона, а чтобы он генерировался сам? Т.е. чтобы можно было написать:

auto model0 = Model();

auto model1 = Model();

auto model10 = Model<decltype(model1)::STID>();
auto model11 = Model<decltype(model1)::STID>();

А результат был такой же.


Ответы (0 шт):