A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/algorithm/ranges/../../ranges/cdata.html below:

std::ranges::cdata - cppreference.com

inline namespace /*unspecified*/ {

    inline constexpr /*unspecified*/ cdata = /*unspecified*/;

}
(since C++20)
(customization point object)

Call signature

template< class T >

    requires /* see below */

constexpr /* see below */ cdata( T&& t );
(since C++20)

Returns a pointer to the first element of constant type(since C++23) of a contiguous range denoted by a const-qualified(until C++23) argument.

If ranges::cdata(t) is valid, then it returns a pointer to an object of constant type(since C++23).

Customization point objects

The name ranges::cdata denotes a customization point object, which is a const function object of a literal semiregular class type. See CustomizationPointObject for details.

[edit] Example
#include <cstring>
#include <iostream>
#include <ranges>
#include <string>
 
int main()
{
    std::string src {"hello world!\n"};
 
//  std::ranges::cdata(src)[0] = 'H'; // error, src.data() is treated as read-only
    std::ranges::data(src)[0] = 'H'; // OK, src.data() is a non-const storage
 
    char dst[20]; // storage for a C-style string
    std::strcpy(dst, std::ranges::cdata(src));
    // [data(src), data(src) + size(src)] is guaranteed to be an NTBS
 
    std::cout << dst;
}

Output:

[edit] See also obtains a pointer to the beginning of a contiguous range
(customization point object)[edit] obtains the pointer to the underlying array
(function template) [edit]

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4