История изменений
Исправление
dzidzitop,
(текущая версия)
:
1) самый простой пример
template<typename A, B>
auto f(A a, B b)
{
// your code
}
какого хрена автор хочет, чтобы я догадывался о типе возвращаемого значения через чтение имплементации, эффективно позволяя различные неочевидные ошибки и лишние неявные преобразования типов - не знаю.
Я бы такую хрень не вводил язык, ибо хипстеры точно будут ей злоупотреблять. А для сложных случаев навороченных шаблонов есть decltype.
2) auto a = f();
это совсем не то же самое, что
auto &a = f();
Но это нужно знать и не забыть вставить & там, где надо. А если & нет, то нужно догадываться, что хотел сказать автор и не ошибся ли. С обычными типами такой мины нет.
========
Но в случаях итераторов, где контекст достаточно очевиден, юзать можно.
Это одна из фич обновлённых плюсцов, которые я принял неоднозначно.
Исходная версия
dzidzitop,
:
1) самый простой пример
template<typename A, B>
auto f(A a, B b)
{
// your code
}
какого хрена автор хочет, чтобы я догадывался о типе возвращаемого значения через чтение имплементации, эффективно позволяя различные неочевидные ошибки и лишние неявные преобразования типов - не знаю.
Я бы такую хрень не вводил язык, ибо хипстеры точно будут ей злоупотреблять. А для сложных случаев навороченных шаблонов есть decltype.
2) auto a = f();
это совсем не то же самое, что
auto &a = f();
Но это нужно знать и не забыть вставить & там, где надо. А если & нет, то нужно догадываться, что хотел сказать автор и не ошибся ли. С обычными типами такой мины нет.
Но в случаях итераторов, где контекст достаточно очевиден, юзать можно.
Это одна из фич обновлённых плюсцов, которые я принял неоднозначно.