Namespaces
Variants

std::shared_ptr<T>::operator[]

From cppreference.com
 
 
Memory management library
Allocators
Memory resources
Uninitialized storage (until C++20*)
Garbage collector support (until C++23)
 
 
element_type& operator[]( std::ptrdiff_t idx ) const;
(since C++17)
(constexpr since C++26)

Returns a reference to the element at specified location idx of the array pointed to by the stored pointer.

When T is not an array type, it is unspecified whether operator[] is declared. If it is declared, it is unspecified what its return type is, except that the declaration is guaranteed to be well-formed.

If the stored pointer is null, the behavior is undefined.

If idx is negative, or T is an array type U[N] and idx is greater than or equal to N, the behavior is undefined.

(until C++26)

If idx is negative, or T is an array type U[N] and idx is greater than or equal to N:

(since C++26)

Parameters

idx - the array index

Return value

get()[idx]

Exceptions

Throws nothing.

Example

#include <cstddef>
#include <iostream>
#include <memory>

int main()
{
    const std::size_t arr_size = 10;
    std::shared_ptr<int[]> pis(new int[10]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9});
    for (std::size_t i = 0; i < arr_size; ++i)
        std::cout << pis[i] << ' ';
    std::cout << '\n';
}

Output:

0 1 2 3 4 5 6 7 8 9

See also

returns the stored pointer
(public member function) [edit]