Zvýšení úrovně celého čísla
Objekty celočíselného typu lze převést na jiné širší celočíselné typy (to znamená typy, které mohou představovat větší množinu hodnot).Tento typ rozšiřujícího převodu se nazývá „povýšení celočíselného typu“. S povýšením celočíselného typu lze všude ve výrazu, kde lze použít jiný celočíselný typ, použít následující:
Objekty, literály a konstanty typu char a short int
Výčtové typy
Bitová pole typu int
Enumerátory
Povýšení typu v jazyce C++ „zachovávají hodnotu“. To znamená, že hodnota po povýšení zůstane stejná jako hodnota před povýšením.U povýšení typu zachovávajícího hodnotu jsou objekty kratších celočíselných typů (například bitová pole nebo objekty typu char) povýšeny na typ int, pokud může typ int v plném rozsahu reprezentovat původní typ.Pokud typ int nemůže reprezentovat úplný rozsah hodnot, je objekt povýšen na typ unsigned int.Ačkoli je tato strategie stejná jako ve standardu ANSI jazyka C, převody zachovávající hodnotu nezachovávají to, zda objekt má nebo nemá znaménko.
Povýšení typu zachovávající hodnotu a povýšení typu, které normálně zachovávají znaménko vrátí stejné výsledky.Mohou však vrátit různé výsledky, pokud je povýšený typ objektu jedním z následujících:
Operand operátoru /, %, /=, %=, <, <=, > nebo >=
Tyto operátory pro stanovení výsledku spoléhají na znaménko.Proto povýšení typu zachovávající hodnotu a povýšení typu zachovávající znaménko vrátí při použití s těmito operandy různé výsledky.
Levý operand operátoru >> nebo >>=
Tyto operátory s hodnotami se znaménkem nebo bez znaménka při provádění operací posunu zacházejí odlišně.U hodnot se znaménkem posunutí hodnoty vpravo způsobí, že je bit znaménka posunut na pozici uvolněného bitu.U hodnot bez znaménka jsou pozice uvolněných bitů vyplněny nulami.
Argument přetížené funkce nebo operand přetíženého operátoru, který závisí na tom, zda je typ se znaménkem nebo bez, tohoto operandu pro párování argumentů. (Další informace o definici přetížených operátorů naleznete v tématu Přetížené operátory.)