Добавить inline constexpr для std::nothrow внутри <new>

dbrauer
dbrauer

Текущая декларация имеет следующий вид:

struct nothrow_t
{
#if __cplusplus >= 201103L
  explicit nothrow_t() = default;
#endif
};

extern const nothrow_t nothrow;

При компиляции с -nostdlib выдает ошибку линковки (не находит константу std::nothrow)

Текущий workaround:

auto p1 = new (std::nothrow_t{}) foo;

или

auto mynothowconst = std::nothrow_t{};

auto p2 = new (mynothowconst) foo;

5
рейтинг
в разработке
2 комментария
yndx-antoshkka

Завели issue на стандартную библиотеку: https://cplusplus.github.io/LWG/issue3106

Постараемся на ближайшем заседании форсировать исправление.

yndx-antoshkka
yndx-antoshkka

Разработчики стандартных библиотек перепроверят, что данная правка не ломает ABI, и скорее всего примут изменение на одном из ближайших заседаний.

yndx-antoshkka
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения