Re[2]: Вывод аргументов шаблоной функции
От: Yacha Россия  
Дата: 01.06.05 14:31
Оценка:
Здравствуйте, Ignoramus, Вы писали:

I>Здравствуйте, Yacha, Вы писали:


Y>>Всем доброго времени суток!


Y>>Хотелось бы разъеснить следующую ситуацию:


Y>>
Y>>template<typename T>
Y>>void foo(T t)
Y>>{
Y>>   t = 1;
Y>>}

Y>>...

Y>>int i = 0;
Y>>int &ii = i;
Y>>foo(ii);//здесь передается по значению, а хотелось бы по ссылке
Y>>


I>Это почему ты так решил? Здесь передается по значению, а значение копируется через ссылку, но это уже детали, не имеющие к foo отношения.


Тип T должен выводиться на основании типа аргумента t, если я не прав, то поправте меня, в приведенном случае типом аргумента является
int &



Y>>Я понимаю, что правильным было бы
 template<typename T> void foo(T& t) { t = 1; }
, но

Y>>почему в первом случае T не может быть int& ?

I>Тут нет правильного или неправильного. Следует сделать так, как тебе нужно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.