Re[10]: так компайл тайм рефлекшину быть 26-й стандарт ??
От: rg45 СССР  
Дата: 24.03.26 09:39
Оценка:
Здравствуйте, ботаныч, Вы писали:

Б>Здравствуйте, rg45, Вы писали:


Б>привет.


R>>Причём, через "точку" можно обращаться в т.ч. и к статическим членам классов (главное, чтоб слева от точки было выражение, вычисляющееся в объект). Например: std::true_type{}.value — это обращение к статическому члену std::true_type::value. Или std::numeric_limits<double>{}.epsilon() — то же самое, что std::numeric_limits<double>::epsilon().


Б> чисто формально std::numeric_limits<double>{}.epsilon() — здесь будет создан инстанс, по моему мнению. в отличии от ::


Разумеется, будет создан инстанс, по-моему, я и сам это ясно это обозначил: "главное, чтоб слева от точки было выражение, вычисляющееся в объект".

Хорошо, "то же самое" зачёркриваем. Оставляем только: "через оператор доступа к членам (точку) можно доступаться не только к инстансным, но и к статическим членам". Это было главной мыслью, которую я высказал для полноты картины использования этих двух операторов.

Б>более близко выглядело бы ((std::numeric_limits<double>*)nullptr)->epsilon(), для статики.


Во-первых, это уже другой оператор (->), о котором и речи не шло изначально. Во-вторых, здесь тоже будет создан "инстанс", т.к. указатель — это тоже объект (нулевой указатель в т.ч). Выигрыш по сравнению с созданием объекта пустой структуры сомнителен. В-третьих, я вот думаю, а не будет ли здесь UB (разыменовывание нулевого указателя)? Вот это не очень очевидно для меня — с одной стороны, разыменовывание налицо, с другой — доступа к области памяти, занимаемой объектом нет, this не используется даже формально.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 24.03.2026 10:46 rg45 . Предыдущая версия . Еще …
Отредактировано 24.03.2026 10:35 rg45 . Предыдущая версия .
Отредактировано 24.03.2026 10:31 rg45 . Предыдущая версия .
Отредактировано 24.03.2026 10:28 rg45 . Предыдущая версия .
Отредактировано 24.03.2026 10:16 rg45 . Предыдущая версия .
Отредактировано 24.03.2026 10:15 rg45 . Предыдущая версия .
Отредактировано 24.03.2026 10:12 rg45 . Предыдущая версия .
Отредактировано 24.03.2026 9:57 rg45 . Предыдущая версия .
Отредактировано 24.03.2026 9:55 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.