Генерация значения аргумента шаблона
У меня есть шаблон класса:
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>();
А результат был такой же.