cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

Переименовать все новые *_ref функции и классы в *_view #311

Closed apolukhin closed 3 years ago

apolukhin commented 3 years ago

Перенос предложения: голоса +35, -9 Автор идеи: yndx-antoshkka

Недавно в C++20 добавили класс atomic_ref. На подходе класс function_ref.

Разные наименования для не владеющих классов (string_view, atomic_ref, function_ref, span...) смущают, хочется иметь консистентные имена.

Предлагаю привести все имена к единому виду, с постфиксом _view:

apolukhin commented 3 years ago

languagelawyer, 18 июня 2018, 16:07 А почему atomic_view переименовали в atomic_ref?

Александр Рыбалка, 5 июля 2018, 12:01 Проголосовал за консистентность, но, по-моему, лучше бы сделали не _view, а _ref. Потому что view ассоциируется с паттерном MVC, а ref - с reference, что, на мой взгляд, лучше отражает суть класса.

Vladimir Smirnov, 6 июля 2018, 13:33 Александр Рыбалка, поддерживаю ваше предложение

Semen Martynov, 9 июля 2018, 14:37 Александр Рыбалка, разумно

webreh, 5 июля 2018, 13:03 За все, кроме, возможно, atomic_ref. Идея использовать специальный суффикс _view для семантических ссылок крайне привлекательна (в частности, мы используем).

О коллизиях с паттернами поздно рассуждать, потому что уже есть string_view.

gbug, 5 июля 2018, 13:47 Однообразие -- это хорошо и правильно, но только хочется не _view, а _ref. Как уже здесь высказывались, так лучше передается суть. ИМХО, разумеется.

vladsavostin, 5 июля 2018, 16:13 Если невладеющий класс не допускает изменения объекта, на который он ссылается, то его логично называть view, когда же невладеющий класс допускает изменения, то это, безусловно, ref. Смешивать эти названия мне кажется плохой идеей.

Ilya Popov, 6 июля 2018, 14:17 Вообще-то есть принципиальная разница между *_view и *_ref. *_view только для чтения, через них нельзя изменить объкт на который они ссылаются (только константный доступ). Через _ref объект можно изменять.

Yurii Zubrytskyi, 10 июля 2018, 5:28 Не надо. Сейчас как раз всё консистентно - _view предоставляет только константный доступ (можно посмотреть), а _ref - чистая ссылка (можно менять)

Вадим Усольцев, 25 июля 2018, 23:17 Присоединяюсь к ораторам за _ref - как-то более адекватно. view - это откуда-то из другой области все же.

apolukhin commented 3 years ago

Со std::span мы опоздали (хотелось бы, чтобы его имя было самой большой проблемой!)

В остальном, как мне подсказали, консистентность уже есть