LINUX.ORG.RU

История изменений

Исправление 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();

Но это нужно знать и не забыть вставить & там, где надо. А если & нет, то нужно догадываться, что хотел сказать автор и не ошибся ли. С обычными типами такой мины нет.

Но в случаях итераторов, где контекст достаточно очевиден, юзать можно.

Это одна из фич обновлённых плюсцов, которые я принял неоднозначно.