Сообщение Re: ::operator new() в самописном стэке от 08.06.2023 7:16
Изменено 08.06.2023 7:29 rg45
Re: ::operator new() в самописном стэке
Здравствуйте, Sm0ke, Вы писали:
S>Да, я думал об этом. Но было бы странно делая самописный вектор иметь стандартный под капотом)
S> . . .
S>Пока остановился на вызове ::operator new(s_size * p_reserve, s_align, std::nothrow), пришлось писать reinterprete_cast<>()
По-моему, не стоит так уж избегать reinterpret_cast в данном случае, поскольку его использование инкапсулировано, локализовано и должным образом оттестировано, а не размазано по клиентскому коду.
S>Да, я думал об этом. Но было бы странно делая самописный вектор иметь стандартный под капотом)
S> . . .
S>Пока остановился на вызове ::operator new(s_size * p_reserve, s_align, std::nothrow), пришлось писать reinterprete_cast<>()
По-моему, не стоит так уж избегать reinterpret_cast в данном случае, поскольку его использование инкапсулировано, локализовано и должным образом оттестировано, а не размазано по клиентскому коду.
Re: ::operator new() в самописном стэке
Здравствуйте, Sm0ke, Вы писали:
S>Да, я думал об этом. Но было бы странно делая самописный вектор иметь стандартный под капотом)
S> . . .
S>Пока остановился на вызове ::operator new(s_size * p_reserve, s_align, std::nothrow), пришлось писать reinterprete_cast<>()
По-моему, не стоит так уж избегать reinterpret_cast в данном случае, поскольку его использование инкапсулировано, локализовано и должным образом оттестировано, а не размазано по клиентскому коду.
P.S. И, возможно, даже имеет смысл заменить reinterpret_cast на двойной static_cast (с промежуточным преобразованием к void*).
S>Да, я думал об этом. Но было бы странно делая самописный вектор иметь стандартный под капотом)
S> . . .
S>Пока остановился на вызове ::operator new(s_size * p_reserve, s_align, std::nothrow), пришлось писать reinterprete_cast<>()
По-моему, не стоит так уж избегать reinterpret_cast в данном случае, поскольку его использование инкапсулировано, локализовано и должным образом оттестировано, а не размазано по клиентскому коду.
P.S. И, возможно, даже имеет смысл заменить reinterpret_cast на двойной static_cast (с промежуточным преобразованием к void*).