История изменений
Исправление 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 и думает, что он имеет дело с одним типом, а на самом деле тип другой
Т.е. он ориентируется не на определение переменной, а на её использование? Тут явные типы не факт, что помогут.