Spec-Zone.ru › C++

std::pointer_traits<Ptr>::pointer_to

Определён в заголовочном файле <memory>
static pointer
pointer_to( element_type& r );
(1) (начиная с C++11)
(член специализации pointer_traits<Ptr>)
static pointer
pointer_to( element_type& r ) noexcept;
(2) (начиная с C++11)
(до C++20)
(член специализации pointer_traits<T*>)
static constexpr pointer
pointer_to( element_type& r ) noexcept;
(начиная с C++20)
(член специализации pointer_traits<T*>)

Создаёт разыменовываемый указатель или объект, подобный указателю («хитроумный указатель»), на переданный аргумент.

1) Эта версия функции в неспециализированном шаблоне std::pointer_traits просто вызывает Ptr::pointer_to(r); если Ptr не предоставляет статическую функцию-член pointer_to, инстанцирование этой функции приводит к ошибке компиляции.
2) Эта версия функции в специализации std::pointer_traits для типов-указателей возвращает std::addressof(r).

Параметры

r - ссылка на объект типа element_type&, за исключением случая, когда element_type — void; в этом случае тип r не указан

Возвращаемое значение

Разыменовываемый указатель на r типа pointer_traits<>::pointer.

Исключения

1) Не указаны (обычно совпадают с Ptr::pointer_to).

Примечания

Версия этой функции из библиотеки Boost.Intrusive возвращает pointer(std::addressof(r)), если Ptr::pointer_to не существует.

См. также

addressof
(C++11)
получает фактический адрес объекта, даже если оператор & перегружен
(шаблон функции)
address
(до C++20)
получает адрес объекта, даже если operator& перегружен
(открытая функция-член std::allocator<T>)
to_address
[static] (C++20)(необязательный)
получает обычный указатель из хитроумного указателя (обратная операция для pointer_to)
(открытая статическая функция-член)
to_address
(C++20)
получает обычный указатель из типа, подобного указателю
(шаблон функции)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/pointer_traits/pointer_to

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API