Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, lomeo, Вы писали:
L>>Это уже type checker.
VD>Ерунду какую-то говоришь. Проверка типов есть в любом языке не зависимо от наличия в нем вывода типов.
Именно, поэтому переписываю код WolfHound'а на Си++
template <class A, class B, unsigned int n>
Vec<B, n> vmap(std::function<B (A)> f, Vec<A, n> const &)
{ ... }
Где тут вывод типов?
Вот если бы сигнатуры vmap не было, то был бы вывод. А при подстановке конкретных параметров — это уже type check, как правильно заметил lomeo
Здравствуйте, VoidEx, Вы писали:
VD>>Ерунду какую-то говоришь. Проверка типов есть в любом языке не зависимо от наличия в нем вывода типов.
VE>Именно, поэтому переписываю код WolfHound'а на Си++
VE>VE>template <class A, class B, unsigned int n>
VE>Vec<B, n> vmap(std::function<B (A)> f, Vec<A, n> const &)
VE>{ ... }
VE>
VE>Где тут вывод типов?
Где-то в недрах "...". Точнее, так как это шаблон, то его вообще нет. Набор токенов, есть набор токенов. Вывод типов начнется когда в шаблон раскроется и в "..." попадут реальные типы.
А вообще, в твоем ответе чувствуется что-то не адекватное. Или ты не понял о чем идет речь, или намеренно пытаешься превратить обсуждение в бессмысленную кашу.
VE>Вот если бы сигнатуры vmap не было, то был бы вывод. А при подстановке конкретных параметров — это уже type check, как правильно заметил lomeo
Прочти еще раз ветку со слов Вольфхаунда и ниже. Обрати внимание, на слова о выводе типов внутри тел методов.