Namespaces
Variants

std::unique_ptr<T,Deleter>:: operator<<

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)
template < class CharT, class Traits, class Y, class D >

std:: basic_ostream < CharT, Traits > & operator << ( std:: basic_ostream < CharT, Traits > & os,

const std:: unique_ptr < Y, D > & p ) ;
(C++20 이후)

p 가 관리하는 포인터의 값을 출력 스트림 os 에 삽입합니다.

다음 코드와 동등합니다: os << p. get ( ) .

이 오버로드는 다음 조건에서만 오버로드 해결에 참여합니다: os << p. get ( ) 가 유효한 표현식인 경우에만.

목차

매개변수

os - std::basic_ostream p 를 삽입할 출력 스트림
p - os 에 삽입할 포인터

반환값

os

참고 사항

만약 std:: unique_ptr < Y, D > :: pointer 가 문자 타입에 대한 포인터인 경우(예: Y char ( [ ] ) 또는 CharT ( [ ] )일 때), 이는 널 종료 문자열에 대한 operator<< 오버로드 를 호출할 수 있으며(실제로 해당 포인터가 그러한 문자열을 가리키지 않을 경우 미정의 동작을 초래함), 포인터 자체의 값을 출력하는 오버로드 를 호출하지 않을 수 있습니다.

예제

#include <iostream>
#include <memory>
class Foo {};
int main()
{
    auto p = std::make_unique<Foo>();
    std::cout << p << '\n';
    std::cout << p.get() << '\n';
}

가능한 출력:

0x6d9028
0x6d9028

참고 항목

관리되는 객체에 대한 포인터를 반환합니다
(public member function)