Пространства имён
Варианты
Действия

std::pointer_traits::pointer_to

Материал из cppreference.com
 
 
Динамическое управление памятью
no section name
Ограниченные алгоритмы неинициализированной памяти
no section name
Поддержка сбора мусора
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)



no section name
 
std::pointer_traits
Функции-элементы
pointer_traits::pointer_to
(C++11)
(C++20)(необязательно)
 
Определено в заголовочном файле <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*>)

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

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& перегружен
(public функция-элемент std::allocator) [править]
[static] (C++20)(необязательно)
получает сырой указатель из причудливого указателя (обратная pointer_to)
(public static функция-элемент) [править]
получает сырой указатель из типа, подобного указателю
(шаблон функции) [править]