В чём разница между std::addressof<>(var) и &var?
int var = 42;
std::cout << std::addressof(var);
std::cout << '\n';
std::cout << &var;
Разница в том, что унарный оператор & может быть перегружен для класс- или enum-типов, делать что-то постороннее и возвращать что-то, не имеющее никакого отношения к адресу объекта. А std::addressof всегда возвращает именно адрес объекта. Например, при написании шаблонного кода для получения адреса объекта некоего обобщенного типа T следует использовать именно std::addressof, а не унарный & - тем самым вы защитите свой шаблонный код от "неожиданностей".
Для int var разницы никакой нет.
std::addressof нельзя использовать для получения адреса нестатического метода или поля класса.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники