Ranga (programowanie komputerów)

W programowaniu komputerowym stopień bez dalszych specyfikacji jest zwykle synonimem (lub odnosi się do) „liczby wymiarów”; zatem tablica dwuwymiarowa ma rangę drugą , tablica trójwymiarowa ma rangę trzecią i tak dalej. Ściśle rzecz biorąc, nie można podać formalnej definicji, która miałaby zastosowanie do każdego języka programowania , ponieważ każdy z nich ma swoje własne koncepcje, semantykę i terminologię; termin ten może nawet nie mieć zastosowania lub wręcz przeciwnie, być stosowany w bardzo konkretnym znaczeniu w kontekście danego języka.

W przypadku APL pojęcie to dotyczy każdego operandu; a diady („funkcje binarne”) mają lewą i prawą rangę .

Zamiast tego ramka poniżej pokazuje, jak można zdefiniować rangę typu i rangę wyrażenia tablicowego (w stylu półformalnym) dla C++ i ilustruje prosty sposób obliczania ich w czasie kompilacji.

 
 
 






    

         0


  #include  <type_traits>  #include  <cstddef>  /* Ranga typu  * -------------  *  * Niech rangą typu T będzie liczba jego wymiarów, jeśli  * jest to typ szyk; zero w przeciwnym razie (co jest typową konwencją)   */  szablon  <  nazwa typu  T  >  struct  rank  {  static  const  std  ::  size_t  value  =  ;  };  szablon  <  nazwa typu  T  ,   
 

           


  
     std  ::  size_t  N  >  ranga  struktury  <  T  [  N  ]  >  {  stała  statyczna  std  ::  wartość_rozmiaru  =  1  +  ranga  <  T  >  ::  wartość  ;  };  szablon  <  nazwa typu  T  >  constexpr  auto  ranking_v  =  ranga  <  T  >::  wartość  ; 






  
    

  
  

     /* Ranga wyrażenia  *  * Niech ranga wyrażenia będzie rangą jego typu  */  szablon  <  nazwa typu  T  >  using  unqualified_t  =  std  ::  usuń_cv_t  <  std  ::  usuń_referencję_t  <  T  >>  ;  szablon  <  nazwa typu  T  >  auto  rankingof  (  T  &&  wyrażenie  )  {  return  
 ranga_v  <  niekwalifikowany_t  <  T  >>  ;  } 

Biorąc pod uwagę kod powyżej, rangę typu T można obliczyć w czasie kompilacji według

 ranga  <  T  >::  wartość 

lub krótsza forma

 ranga_v  <  T  > 

Obliczenia rangi wyrażenia można dokonać za pomocą

 ranga  (  wyrażenie  ) 

Zobacz też