Re[12]: Visual C# vs C++. Надо сравнить перспективы.
От: vdimas Россия  
Дата: 02.01.17 15:49
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

V>>Любые шаблонные выверты уже рефакторятся без проблем в сколь угодно больших проектах.

НС>Шаблон — штука текстовая. Получить нормальную метаинформацию можно только когда в него параметры подставлены. А до этого возможности по рефакторингу крайне ограничены.

У шаблона может быть базовый класс, могут быть собственные поля и методы, есть видимость других типов или свободных ф-ий, т.е. по многим вещам "видимость" прекрасная, по крайней мере в том объеме, в каком можно рефакторить генерики дотнета (т.е. в аналогичных сценариях параметрического полиморфизма) — возможности аналогичные.

Ну и Решарпер С++ в последних версиях выдаёт предупреждение, если в результате рефакторинга у нас может получиться некомпилирующийся код.

Например, где в дотнете принято при трансформации данных описывать акцессоры "по-месту" (навроде x => x.Y) для каждого уникального x, там в С++ ленивый программист может сделать некий шаблонный getY(x) и тогда, действительно, если у одного из типов переименовать поле Y, то потребуется ручное вмешательство затем. В тех случаях, где код будет написан в стиле дотнета (через лямбду с конкретными выводимыми типами по-месту), необходимых дополнительных действий не будет.

Понятно, что x => x.Y выглядит тривиально, это был лишь пример. В общем случае "оно" может быть не тривиальным, т.к. именно под нетривиальные объемы кода пишут те самые шаблоны "многоразового применения" — в этом их фишка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.