среда, 14 июня 2023 г.

[prog.c++] Несколько интересных статей с devblogs.microsoft.com

В последние дни на глаза попалось несколько любопытных статей, ссылки на которые захотелось сохранить в склерознике. Вот, делаю это в виде блог-поста.

How to check if a pointer is in a range of memory. Просто и наглядно на тему того, почему сравнивать указатели на больше/меньше так себе идея (хотя, признаюсь, временами мало того, что хочется, так еще и нужно). Там же описан и один легальный способ сделать это (если у вас в компиляторе есть uintptr_t). Если не ошибаюсь, еще безопасно использовать std::less для указателей. Но если ошибаюсь, то буду признателен, если меня поправят. Спасибо ув.тов.Сергею Скороходову за ссылку.

Reordering C++ template type parameters for usability purposes, and type deduction from the future. Имхо, полезная статья для тех, кто начинает упарываться шаблонной магией и сталкивается с тем, что у того же std::vector есть несколько шаблонных параметров и иногда это приходится учитывать. Кроме того, в случае данной статьи следует обратить внимание и на комментарии.

The move constructor that you have to declare, even though you don’t want anyone to actually call it. Статья для тех, кто как и я не знал, что для NRVO (named return value optimization) требуется, чтобы в типе был описан конструктор перемещения. Даже не смотря на то, что вызов этого конструктора будет выброшен оптимизатором.

Комментариев нет: