использовать один аргумент для удержания параметра шаблона?


assign()

Допустим у меня есть шаблон функции, . Она принимает указатель и значение и присваивает значение целевого указателя:

template <typename T> void assign(T *a, T b) { *a = b; }int main() {    double i;    assign(&i, 2);}
T2int

В этом случае я всегда хочу быть выведено из первого аргумента, но, похоже, я не сделал хорошую работу, выражая в этом. вот типа так:

deduce.cpp:5:5: error: no matching function for call to 'assign'    assign(&i, 2);    ^~~~~~deduce.cpp:1:28: note: candidate template ignored: deduced conflicting types for parameter 'T' ('double' vs. 'int')template  void assign(T *a, T b) { *a = b; }
assign()

Есть ли способ я могу объявить, так что второй аргумент не участвует в удержании параметра шаблона?