std::data
From cppreference.com
| Defined in header <iterator>
|
||
| Defined in header <array>
|
||
| Defined in header <deque>
|
||
| Defined in header <forward_list>
|
||
| Defined in header <list>
|
||
| Defined in header <map>
|
||
| Defined in header <regex>
|
||
| Defined in header <set>
|
||
| Defined in header <string>
|
||
| Defined in header <unordered_map>
|
||
| Defined in header <unordered_set>
|
||
| Defined in header <vector>
|
||
template <class C>
constexpr auto data(C& c) -> decltype(c.data());
|
(1) | (since C++17) |
template <class C>
constexpr auto data(const C& c) -> decltype(c.data());
|
(2) | (since C++17) |
template <class T, std::size_t N>
constexpr T* data(T (&array)[N]) noexcept;
|
(3) | (since C++17) |
template <class E>
constexpr const E* data(std::initializer_list<E> il) noexcept;
|
(4) | (since C++17) |
Returns a pointer to the block of memory containing the elements of the container.
1,2) returns
c.empty()3) returns
array4) returns
il.begin()Parameters
| c | - | a container with a data() method
|
| array | - | an array of arbitrary type |
| il | - | an initializer list |
Return value
A pointer to the block of memory containing the elements of the container.
Exceptions
3,4)
noexcept specification:
noexceptPossible implementation
| First version |
|---|
template <class C>
constexpr auto data(C& c) -> decltype(c.data());
{
return c.data();
}
|
| Second version |
template <class C>
constexpr auto data(const C& c) -> decltype(c.data());
{
return c.data();
}
|
| Third version |
template <class T, std::size_t N>
constexpr T* data(T (&array)[N]) noexcept;
{
return array;
}
|
| Fourth version |
template <class E>
constexpr const E* data(std::initializer_list<E> il) noexcept;
{
return il.begin();
}
|
Example
| This section is incomplete Reason: no example |