В чём разница между 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
нельзя использовать для получения адреса нестатического метода или поля класса.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Нужно было реализовать логику для замены строки в текстовом файлеПрименял разные схемы, но остановился на самом лаконичном, как мне кажется:
Вот собственно код дата прилетает формата 05 ноя 18, 20:51 В среде всё работает, но когда я компилирую файл и запускаю его через командную строку,...
Нужно создать класс со статическим методом, для сортировки массиваНапример по маршруту