Język C++
constexpr
[słowo kluczowe] Gwarantuje, że wartość zwracana przez funkcję, metodę bądź zmienną jest niezmienna podczas kompilacji.Opis szczegółowy
Słowo kluczowe
constexpr gwarantuje, że wartość zwracana przez funkcję, metodę bądź zmienną jest stała podczas procesu kompilacji.
Funkcje i metody
Użycie
constexpr narzuca pewne ograniczenia na budowę funkcji. Ograniczenia te są następujące:
Przykład
constexpr int dajLiczbe()
{
return 9;
}
int tablica[ dajLiczbe() + 3 ];
Zmienne
Standard C++11 wprowadził również możliwość definiowania zmiennych ze słowem kluczowym
constexpr. Zmienne, które używają słowa kluczowego
constexpr muszą zostać zainicjalizowane podczas ich tworzenia wartością stałą lub wyrażeniem, które da wartość stałą.
Przykład 1
constexpr double grawitacja_ziemia = 9.8;
constexpr double grawitacja_ksiezyc = grawitacja_ziemia / 6.0;
Przykład 2
static const int zmiennaStatyczna = 5;
constexpr const int * dajAdres( const int & zmienna )
{
return & zmienna;
}
constexpr const int * pStatyczna = dajAdres( zmiennaStatyczna );
constexpr const int * pTymczasowa = dajAdres( 5 );
Konstruktory
Standard C++11 umożliwia także użycie słowa kluczowego
constexpr w konstruktorach:
Przykład
int zmiennaGlobalna;
struct CKlasa
{
constexpr CKlasa( bool bUzyjStalej )
: m_zmienna( bUzyjStalej ? 42
: zmiennaGlobalna )
{
}
int m_zmienna;
};
constexpr int x1 = CKlasa( true ).m_zmienna;
constexpr int x2 = CKlasa( false ).m_zmienna;
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.