Sıra (bilgisayar programlama) - Rank (computer programming)

Olarak bilgisayar programlama , seviye başka özellikleri ile genellikle eş anlamlıdır (ya da karşılık gelir) "boyutların sayısı"; Bu şekilde, bir iki boyutlu dizi sıralaması vardır iki , üç boyutlu bir dizi sıralaması vardır üç benzerleri ve. Kesinlikle, hiçbir resmi tanımı her uygulanır hangi sağlanabilir programlama dili her biri kendi kavramları, sahip olduğundan, anlambilim ve terminoloji; terim bile belirli bir dil bağlamında çok özel bir anlam uygulanan tersine, karşı, uygulanabilir veya olmayabilir.

Durumunda APL kavramı her işlenen için geçerlidir; ve çiftlerinde ( "ikili işlevler") bir var sol rütbe ve sağ rütbe .

Aşağıdaki kutusu yerine gösterir tipte bir seviye ve bir dizi ekspresyon rank C (yarı-resmi bir dilde) gibi tanımlanmıştır ++ ve derleme zamanında bunları hesaplamak için basit bir yol göstermektedir edilebilir.

#include <type_traits>
#include <cstddef>
 
/* Rank of a type
 * -------------
 *
 * Let the rank of a type T be the number of its dimensions if
 * it is an array; zero otherwise (which is the usual convention)
 */
template <typename T> struct rank
{
    static const std::size_t value = 0;
};

template<typename T, std::size_t N>
struct rank<T[N]>
{
    static const std::size_t value = 1 + rank<T>::value;
};

template <typename T>
constexpr auto rank_v = rank<T>::value;

/* Rank of an expression
 *
 * Let the rank of an expression be the rank of its type
 */

template <typename T>
using unqualified_t = std::remove_cv_t<std::remove_reference_t<T>>; 

template <typename T>
auto rankof(T&& expr)
{
    return rank_v<unqualified_t<T>>;
}

T türünde bir rütbe Yukarıdaki kod ile derleme sırasında hesaplanan sorgulama yapılabilmektedir

rank<T>::value

ya da daha kısa bir şekilde

rank_v<T>

Bir ifadenin rütbesi hesaplanması kullanılarak yapılabilir

rankof(expr)

Ayrıca bakınız