Hodnost (počítačové programování) - Rank (computer programming)
V počítačovém programování je pozice bez dalších specifikací obvykle synonymem pro (nebo odkazuje na) „počet dimenzí“; tedy dvourozměrné pole má pořadí dvě , trojrozměrné pole má pořadí tři a tak dále. Přísně nelze poskytnout žádnou formální definici, která by platila pro každý programovací jazyk , protože každý z nich má své vlastní koncepty, sémantiku a terminologii; tento výraz nemusí být ani použitelný, nebo naopak může být použit v kontextu daného jazyka s velmi konkrétním významem.
V případě APL se tento pojem vztahuje na každý operand; a dyady („binární funkce“) mají levou a pravou pozici .
Níže uvedené pole ukazuje, jak lze definovat pořadí typu a pořadí výrazu pole (v semi-formálním stylu) pro C ++, a ilustruje jednoduchý způsob, jak je vypočítat v době kompilace.
#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>>;
}
Vzhledem k výše uvedenému kódu lze hodnost typu T vypočítat v době kompilace pomocí
rank<T>::value
nebo kratší forma
rank_v<T>
Výpočet pořadí výrazu lze provést pomocí
rankof(expr)
Viz také
- Hodnost (lineární algebra) , pro definici hodnosti aplikovanou na matice
- Rank (programovací jazyk J) , koncept stejného jména v programovacím jazyce J.
| Tento článek týkající se programovacího jazyka je útržek . Wikipedii můžete pomoci rozšířením . |