LINUX.ORG.RU

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

Исправление Begemoth, (текущая версия) :

Так что анализ программы усложняется, тут нечего даже обсуждать.

А современные IDE ещё и ошибки в коде подсвечивают до компиляции, это ещё больший объём работы. Вообще важно знать _смысл_ типа, а не его конкретное имя. Тебе сильно поможет имя типа в духе:

transform_iterator<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char>>::const_iterator, std::function<std::basic_string<char, std::char_traits<char>, std::allocator<char>> (std::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)>

По смыслу: два типа, для которых определены одинаковые методы с одинаковыми параметрами. Далее программист неверно парсит auto и думает, что он имеет дело с одним типом, а на самом деле тип другой

Т.е. он ориентируется не на определение переменной, а на её использование? Тут явные типы не факт, что помогут.

Исправление Begemoth, :

Так что анализ программы усложняется, тут нечего даже обсуждать.

А современные IDE ещё и ошибки в коде подсвечивают до компиляции, это ещё больший объём работы. Вообще важно знать _смысл_ типа, а не его конкретное имя. Тебе сильно поможет имя типа в духе:

transform_iterator<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char>>::const_iterator>

По смыслу: два типа, для которых определены одинаковые методы с одинаковыми параметрами. Далее программист неверно парсит auto и думает, что он имеет дело с одним типом, а на самом деле тип другой

Т.е. он ориентируется не на определение переменной, а на её использование? Тут явные типы не факт, что помогут.

Исходная версия Begemoth, :

Так что анализ программы усложняется, тут нечего даже обсуждать.

А современные IDE ещё и ошибки в коде подсвечивают до компиляции, это ещё больший объём работы. Вообще важно знать _смысл_ типа, а не его конкретное имя. Тебе сильно поможет имя типа в духе:

transform_iterator<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char>>>

По смыслу: два типа, для которых определены одинаковые методы с одинаковыми параметрами. Далее программист неверно парсит auto и думает, что он имеет дело с одним типом, а на самом деле тип другой

Т.е. он ориентируется не на определение переменной, а на её использование? Тут явные типы не факт, что помогут.