constexpr

Różnica między "constexpr" a " const`

Jaka jest różnica między constexpr a const? Kiedy Mogę używać tylko jednego z nich? Kiedy Mogę używać obu i jak wybrać jeden?

Kiedy należy używać funkcji constexpr w C++11?

Wydaje mi się, że posiadanie "funkcji, która zawsze zwraca 5" łamie lub osłabia znaczenie "wywołania funkcji". Musi być jaki ... tość i przyszedł do przeglądu kodu, ktoś powiedziałby mi, powinienem wtedy zadeklarować stałą wartość zamiast pisać return 5.

const vs constexpr na zmiennych

Czy istnieje różnica między następującymi definicjami? const double PI = 3.141592653589793; constexpr double PI = 3.141592653589793; Jeśli nie, jaki styl jest preferowany w C++11?

Undefined reference to static constexpr char[]

Chcę mieć static const char array w mojej klasie. GCC skarżył się i powiedział mi, że powinienem używać constexpr, chociaż te ... static constexpr char baz[] = "quz"; }; // .cpp void foo::bar() { std::string str(baz); // undefined reference to baz }

Czy statyczna zmienna constexpr ma sens?

Jeśli mam zmienną wewnątrz funkcji (powiedzmy, dużą tablicę), czy ma sens deklarowanie jej zarówno static, jak i constexpr? c ... }; // do something with the array } Czy static rzeczywiście robi tam coś pod względem generowanego kodu lub semantyki?

Co to znaczy "zatruć funkcję" w C++?

Na samym końcu rozmowy Scotta Schurra"Introducing constexpr" Na CppCon , pyta "czy istnieje sposób na zatrucie funkcji"? Nast ... łębią, ale jestem ciekawa: Co to znaczy " zatruć a funkcja"? jakie jest znaczenie / przydatność techniki, którą opisuje?

Tworzenie tablicy N-elementowej constexpr w C++11

Witam uczę się C++11, zastanawiam się jak zrobić tablicę constexpr 0 do n, na przykład: n = 5; int array[] = {0 ... n}; Więc tablica może być {0, 1, 2, 3, 4, 5}

Obliczanie długości ciągu C w czasie kompilacji. Czy to naprawdę constexpr?

Próbuję obliczyć długość ciągu znaków w czasie kompilacji. W tym celu używam następującego kodu: #include <cstdio> i ... iterałów w czasie kompilacji tylko otwarte dla mnie... na przykład mogę obliczać hasze w czasie kompilacji i wiele innych...

Czy możliwe jest użycie std:: string w constexpr?

korzystanie z C++11, Ubuntu 14.04, GCC default toolchain . Ten kod nie działa: constexpr std::string constString = "constS ... nstexpr? (najwyraźniej nie...) Jeśli tak, to w jaki sposób? Czy istnieje alternatywny sposób użycia ciągu znaków w constexpr?

Kiedy funkcja constexpr jest oceniana podczas kompilacji?

Ponieważ jest możliwe, że funkcja zadeklarowana jako constexpr może być wywołana podczas run-time, w jakich kryteriach kompil ... je się traktować ją jako normalną funkcję, a nie, gdy zadziałałaby również w czasie kompilacji? Czy są jakieś typowe pułapki?

C++11: Obliczanie czasu kompilacji tablicy

Załóżmy, że mam jakąś funkcję constexpr f: constexpr int f(int x) { ... } I mam pewne const int N znane w czasie kompilac ... i-1,i,j...>::gs(); } }; constexpr auto X = S<N-1>::gs(); int main() { cout << X[3] << endl; }

enum vs constexpr dla rzeczywistych stałych statycznych wewnątrz klas

Zacznę od stwierdzenia mojego zamiaru. W dawnych czasach (C++) mieliśmy kod w stylu: class C { public: enum {SOME_VALUE=27 ... ous at compile time } Dodanie następującego wiersza do kodu w obszarze pliku rozwiąże błąd: constexpr int C::SOME_VALUE;

przeciążenie constexpr

Powiązane: funkcja zwracająca constexpr nie kompiluje Wydaje mi się, że constexpr ma ograniczoną przydatność w C++11 z pow ... tanu), więc dostaję czas uruchomienia podobny do tego, co byłoby moim czasem kompilacji, gdybym przekazał argument constexpr.

Różnica między "if constexpr ()" a " if()"

Jaka jest różnica między if constexpr() a if()? Gdzie i kiedy mogę użyć obu?

Użycie" constexpr " do użycia znaków literalnych dla parametru szablonu

Napisałem jakiś kod, aby rzucić const char* do int za pomocą constexpr i dzięki temu mogę użyć const char* jako argumentu sza ... OUT<"String"> będzie legalne (i rzuci "String" na liczbę całkowitą). Każda pomoc będzie mile widziana, Wielkie dzięki.

C++11 - static assert w funkcji constexpr?

Jak prawidłowo wykonać static_assert wewnątrz constexpr funkcji? Na przykład: constexpr int do_something(int x) { static ... tylko instrukcję return. Nie sądzę, aby standard miał od tego wyjątek, chociaż GCC 4.7 nie pozwala mi skompilować tego kodu.

statyczna zmienna constexpr vs funkcja

Czy istnieje różnica między deklarowaniem stałej zmiennoprzecinkowej jako zmiennej static constexpr A funkcją jak w przykładz ... ass MY_PI { public: static constexpr float MY_PI_VAR = 3.14f; static constexpr float MY_PI_FUN() { return 3.14f; } }

Tabela wyszukiwania z constexpr

Chcę stworzyć tabelę odnośników współrzędnych, coś w stylu: int a[n][2] = {{0,1},{2,3}, ... } Dla danego n, który ma być ... rn type 'std::vector<std::array<int, 2ul> >' of constexpr function Jak stworzyć taką tablicę czasu kompilacji?

Czy obliczenia oparte na constexpr są kompletne?

Wiemy, że metaprogramowanie szablonów C++ jest skończone, ale metaprogramowanie preprocesora nie jest . C++11 daje nam nową ... a i operator warunkowy (?:) są dozwolone w funkcjach constexpr, byłoby, ale chciałbym, aby ktoś z większą wiedzą potwierdził.

constexpr const vs zmienne constexpr?

Wydaje się oczywiste, że constexpr implikuje const i dlatego często można zobaczyć: constexpr int foo = 42; // no const her ... is: constexpr const char *const str = "foo"; Rozwiązuje problem. Czy constexpr const i constexpr naprawdę są takie same?