| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Нельзя вывести аргумент шаблона |
| Автор: cupper 19.1.2012, 23:59 | ||||
Не пойму почему в этом коде
возникает
почему он не может вывести тип ? Ведь конструктор shared_ptr объявлен как explicit... вообще не пойму :( |
| Автор: Sahab 20.1.2012, 01:28 |
| он не тип не может вывести, он не может понять какой из компараторов использовать |
| Автор: cupper 20.1.2012, 10:52 |
| А почему не может ? потому что с типами проблема. А какая ? |
| Автор: boostcoder 20.1.2012, 10:55 | ||||
компилятор же ясно говорит:
что не понятно? static_cast юзай. Добавлено через 3 минуты и 19 секунд
http://liveworkspace.org/code/f23e63b8dce56b51a97006ec3fd369fa не? |
| Автор: azesmcar 20.1.2012, 11:03 | ||
| cupper Под третий шаблонный аргумент функции sort подходят обе функции, компилятор не знает какую из них выбрать. Можешь указать тип вручную
или избавься от неоднозначности. |
| Автор: cupper 20.1.2012, 14:57 | ||||||
проще уж давать уникальные имена сразу функциям.
Да!, именно об этом я и спрашиваю. Почему шаблонизатор считает их эквивалентными ? Мы же не можем вызвать
Передав ей const Data*, ей нужен объект shared_ptr. PS. но мы можем обе передав ей shared_ptr :( http://liveworkspace.org/code/5221f0636d21b0da657bfc649488a83c |
| Автор: boostcoder 20.1.2012, 21:37 |
| cupper, спасибо. |