Namespaces
Variants

std::pointer_traits<Ptr>:: pointer_to

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

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

Создает разыменовываемый указатель или указатель-подобный объект ( "fancy pointer" ) на свой аргумент.

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 не существует.

Смотрите также

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