Функция друга и allocator_traits в С++ 20 ⇐ C++
-
Anonymous
Функция друга и allocator_traits в С++ 20
Я обновляю свой C++14 до C++20, и allocator_traits внезапно перестал работать. Я использую friend для метода construct allocator_traits, потому что мой пользовательский тип A имеет частный конструктор. Я вижу устаревание construct в std::allocator. Повлияет ли это на использование allocator_traits? Или использование friend изменилось?
#if _MSC_VER >= 1700 // VS2012 друг void std::allocator::construct(A *); друг void std::allocator::construct(A *,const A &); #if _MSC_VER >= 1900 // VS2017 друг void std::_Default_allocator_traits::construct(std::allocator &, A *конст); друг void std::_Default_allocator_traits::construct(std::allocator &, A *const, const A &); #endif // _MSC_VER >= 1900 #endif // _MSC_VER
Я пытался избавиться от std::allocator::construct, но тогда allocator_traits больше не работал. Поскольку std::allocator::construct был удален, можно ли это как-нибудь исправить?
Я обновляю свой C++14 до C++20, и allocator_traits внезапно перестал работать. Я использую friend для метода construct allocator_traits, потому что мой пользовательский тип A имеет частный конструктор. Я вижу устаревание construct в std::allocator. Повлияет ли это на использование allocator_traits? Или использование friend изменилось?
#if _MSC_VER >= 1700 // VS2012 друг void std::allocator::construct(A *); друг void std::allocator::construct(A *,const A &); #if _MSC_VER >= 1900 // VS2017 друг void std::_Default_allocator_traits::construct(std::allocator &, A *конст); друг void std::_Default_allocator_traits::construct(std::allocator &, A *const, const A &); #endif // _MSC_VER >= 1900 #endif // _MSC_VER
Я пытался избавиться от std::allocator::construct, но тогда allocator_traits больше не работал. Поскольку std::allocator::construct был удален, можно ли это как-нибудь исправить?
Мобильная версия