Здравствуйте, T4r4sB, Вы писали:
TB>Здравствуйте, collider, Вы писали:
TB>>>Хорошая загадка: "функция принимает параметр типа T, я в неё запихиваю параметр типа int, угадай T".
TB>>>Ещё хорошая загадка: "функция принимает параметр типа std::vector<T>, я в неё запихиваю параметр типа std::vector<int>, угадай T".
TB>>>Плохая загадка: "функция принимает параметр типа some_struct<T>, я в неё запихиваю параметр типа int, угадай T".
TB>>>Ты видишь разницу между третьей загадкой и первыми двумя?
C>>Неа, все 3 имеют одну единственно правильную отгадку
TB>А разницу в трудоёмкости определения T ты тоже не видишь? Ты не видишь, что в первых двух случаях всё сводится к тавтологии, а в третьем надо хз как перебрать все варианты?
TB>Вот тебе ещё три загадки, отвечай быстро:
TB>1. 5=x; найти икс
TB>2. e5=ex; найти икс
TB>3. 5=ex; найти икс
TB>Что, на третьей споткнулся, полез в калькулятор?
А было бы забавно, если бы компилятор, выдавал ошибку типа:
"не чувак, я слишком стар для таких задач."
C>>одну единственно правильную
TB>Да, и как ты это докажешь? Компилятор должен все-все-все возможные специализации перепроверить?
ну у него есть template<class T> struct some_struct;
и тип int — я бы сказал найти первую подходящую.
И кстати, вы как, быстро с этой задачей справились?
TB>И ещё, ты в курсе, что у тебя some_struct<std::vector<int> > тоже будет иметь конструктор, принимающий int?
А переменной типа std::vector в задаче нету