std::ranges:: cdata
| 
           
           Défini dans l'en-tête
            
         
            
             <ranges>
            
           
           | 
         ||
| 
           
           Défini dans l'en-tête
            
         
            
             <iterator>
            
           
           | 
         ||
| 
           
           
            
             inline
            
            
             namespace
            
            
             /*unspecified*/
            
            
             {
            
             
         
             
              inline
             
             
              constexpr
             
             
              /*unspecified*/
             
             cdata
             
              =
             
             
              /*unspecified*/
             
             
              ;
             
               | 
         
          
           (depuis C++20)
          
           (objet de point de personnalisation)  | 
        |
| 
           
           Signature d'appel
           
          | 
         ||
| 
           
           
            
             template
            
            
             <
            
            
             class
            
            T
            
             >
            
             
         
             requires
             
              /* see below */
             
               | 
         (depuis C++20) | |
Retourne un pointeur vers le premier élément de type constant (depuis C++23) d'une plage contiguë dénotée par un argument qualifié const (jusqu'à C++23) .
| 
          
          Soit
           
 
          Un appel à
           Le type de retour est équivalent à std:: remove_reference_t < ranges:: range_reference_t < CT >> * .  | 
        (jusqu'à C++23) | 
| 
          
          Si l'argument est une lvalue ou si
          
           
            
             
              ranges::
              
               enable_borrowed_range
              
             
            
            
             <
            
            
             
              std::
              
               remove_cv_t
              
             
            
            
             <
            
            T
            
             >>
            
           
          
          est
          
           
            
             true
            
           
          
          , alors un appel à
           
 Le type de retour est équivalent à std:: remove_reference_t < ranges:: range_const_reference_t < T >> * . 
          Dans tous les autres cas, un appel à
            | 
        (depuis C++23) | 
Si ranges :: cdata ( t ) est valide, alors il retourne un pointeur vers un objet de type constant (depuis C++23) .
Objets de point de personnalisation
       Le nom
       
        ranges::cdata
       
       désigne un
       
        objet de point de personnalisation
       
       , qui est un
       
        objet fonction
       
       constant d'un type de classe
       
        littéral
       
       
        
         semiregular
        
       
       .  Voir
       
        
         CustomizationPointObject
        
       
       pour plus de détails.
      
Exemple
#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; }
Sortie :
Hello world!
Voir aussi
| 
          
           
            
             
              (C++20)
             
            
           
           
          | 
        
         obtient un pointeur vers le début d'une plage contiguë
          (objet de point de personnalisation)  | 
       
| 
          
           
            
             
              (C++17)
             
            
           
           
          | 
        
         obtient le pointeur vers le tableau sous-jacent
          (modèle de fonction)  |