Klausimai pažymėti „constexpr“

constexpr yra modifikatorius, įvestas C ++ 11, kuris nurodo kompiliatoriui, kad funkcijos ar kintamojo vertė yra žinoma arba gali būti apskaičiuojama kompiliavimo metu. Taigi jis gali būti naudojamas kaip konstanta vietose, kur tai negali būti kitaip.
5
atsakymai

Skirtumas tarp `constexpr` ir` const`

Koks skirtumas tarp constexpr ir const? Kada galiu naudoti tik vieną iš jų? Kada aš galiu naudoti ir kaip pasirinkti vieną iš jų?
nustatyti 02 Jan '13, 4:42
13
atsakymai

Kada turėtumėte vartoti constexpr C ++ 11?

Man atrodo, kad "funkcija, kuri visada grąžina 5", pertraukia arba sumažina "funkcijos skambučio" reikšmę. Turi būti šios funkcijos priežastis arba poreikis, arba jis nebus C ++ 11. Kodėl jis yra? // išankstinis apdorojimas. #define MEANING_OF_LIFE ...
nustatė sausio 20 d '11, 17:07
4
atsakymai

konst

Ar skiriasi šie apibrėžimai? const dvigubas PI = 3,141592653589793; constexpr dvigubas PI = 3,141592653589793; Jei ne, kokio stiliaus pirmenybė teikiama C ++ 11?
lapkričio 12 d. '12, 18:50
4
atsakymai

Neapibrėžta nuoroda į statinį constexpr char []

Noriu, kad mano klasėje būtų daug statinių const char. Persijos įlankos bendradarbiavimo taryba skundėsi ir papasakojo, kad turėčiau naudoti constexpr, nors dabar jis man pasakė, kokia yra nuoroda. Jei aš padarysiu masyvą ne nariu, tada ji bus sudaryta. Kas vyksta // .hpp str ...
lapkričio 5 d. '11, 2:11
2
atsakymai

Ką reiškia nuodeginti C ++ funkciją?

Pabaigoje „Scott Schurr“ sako „Atstovaujama„ constexpr “„ CppCon “, jis klausia:„ Ar yra būdas nuodeginti funkciją “? Tuomet jis paaiškina, kad tai gali būti padaryta (nors ir nestandartiniu būdu).
lapkričio 27 d. '15, 23:48
1
atsakymas

Ar statinis kintamasis constexpr yra prasmingas?

Jei aš turiu kintamąjį funkcijos viduje (tarkim, didelę masyvą), ar tai prasminga deklaruoti ją kaip statinį ir constexpr? ar constexpr užtikrina, kad masyvas būtų sukurtas kompiliavimo metu, todėl statinis bus nenaudingas? void f () {static constexpr ...
gruodžio 13 d. '12 21:08
6
atsakymai

C eilutės ilgio apskaičiavimas kompiliavimo metu. Ar tai tikrai konstantas?

Bandau apskaičiuoti eilutės raidės ilgį kompiliavimo metu. Norėdami tai padaryti, naudoju šį kodą: #include <cstdio> int constexpr ilgis (const char * str) {return * str? 1 + ilgis (str + 1): 0; } int main () {printf („% d% d“, l ...
nustatytas 17 sep. '14, 15:38
3
atsakymai

Ar galiu naudoti std :: string į constexpr?

Naudojant C ++ 11, Ubuntu 14.04, numatytasis instrumentinis privalomasis GCC. Šis kodas neveikia: constexpr std :: string constString = "constString"; klaida: įveskite 'const string {aka const std :: basic_string} iš constexpr kintamojo "constString on ...
lapkričio 25 d. '14, 12:44
6
atsakymai

enum vs constexpr tikrosioms statinėms konstantoms klasėse

Leiskite pradėti nuo savo ketinimų pareiškimo. Senomis (C + +) dienomis turėtume tokį kodą kaip: C klasė {public: enum {SOME_VALUE = 27}; }; Tada mes galėtume naudoti SOME_VALUE visą mūsų kodą kaip kompiliavimo laiko konstanta ir visur, ...
04 Bal '14 19:02
1
atsakymas

Ar yra constexpr inline?

Apsvarstykite šią integruotą funkciją: // Inline specifikatoriaus versija # įskaitant <iostream> #include <instable inline int f (const int x); inline int f (const int x) {return 2 * x; } int main (int argc, char * argv []) {return f (std :: at ...
nustatytas sausio 18 d '13, 4:48
1
atsakymas

Kodėl nėra „std :: initializer_list“ apibrėžta kaip pažodinis tipas?

Tai yra šio klausimo tęsinys: Ar objekto deklaracija yra constexpr initializer_list?. Nuo C ++ 14, std :: initializer_list klasė turi visus savo metodus, pažymėtus „constexpr“. Atrodo natūralu, kad galėtumėte inicijuoti ...
gruodžio 16 d '14, 4:16
5
atsakymai

Kodėl C ++ 11 constexpr yra toks ribotas?

Kaip tikriausiai žinote, „C ++ 11“ reiškia „constexpr“ raktinį žodį. C ++ 11 pristato constexpr raktinį žodį, kuris leidžia vartotojui užtikrinti, kad funkcijos ar objekto konstruktorius būtų kompiliavimo laiko konstanta. [...] Tai yra ...
lapkričio 29 d. '11 12:55
1
atsakymas

statinis pastovus constexpr vs funkcijos

Ar yra skirtumas tarp deklaruojamo slankiojo kablelio konstantos kaip statinio constexpr kintamojo ir funkcijos, kaip nurodyta toliau pateiktame pavyzdyje, ar tai tik stiliaus klausimas? klasė MY_PI {public: statinis constexpr float MY_PI_VAR = 3.14f; statinis constexpr fl ...
nustatytas balandžio 29 d '13, 23:36
3
atsakymai

Kodėl ** ne ** deklaruoja „constexpr“ funkciją?

Bet kokia funkcija, susidedanti tik iš grąžinimo ataskaitos, gali būti deklaruota kaip konsteksas ir todėl leis juos įvertinti kompiliavimo metu, jei visi kongreso argumentai ir tik konstexpr funkcijos yra vadinamos jų kūnu. Ar yra priežastis, kodėl ...
nustatytas vasario 25 d '11, 3:34
3
atsakymai

Kaip laiko sudarymas gali būti (eksponentiškai) greitesnis nei vykdymo laikas?

Toliau pateiktas kodas apskaičiuoja Fibonacci numerius, naudojant eksponentiškai lėtą algoritmą: #include <cstdlib> #include <iostream> #define DEBUG (var) {std :: cout << #var << ":" << (var) << std: : endl; } constexpr au ...
liepos 12 d., 14 val