Als «constexpr» getaggte Fragen

constexpr ist ein in C ++ 11 eingeführter Modifikator, der den Compiler darüber informiert, dass der Wert einer Funktion oder Variablen bekannt ist oder zur Kompilierungszeit berechnet werden kann. Als solches kann es als Konstante an Orten verwendet werden, an denen es sonst nicht möglich wäre.


2
Wie kann ein const expr so schnell ausgewertet werden?
Ich habe const-Ausdrücke ausprobiert, die zur Kompilierungszeit ausgewertet werden. Aber ich habe mit einem Beispiel gespielt, das unglaublich schnell erscheint, wenn es zur Kompilierungszeit ausgeführt wird. #include<iostream> constexpr long int fib(int n) { return (n <= 1)? n : fib(n-1) + fib(n-2); } int main () { long int res …
13 c++  const  constexpr 


1
Kann Span constexpr sein?
Alle Konstruktoren von std :: span sind als constexpr deklariert, aber ich kann anscheinend keinen von ihnen dazu bringen, in einem constexpr-Kontext zu arbeiten. Das Kommentieren eines der folgenden Constexpr führt zu einem Kompilierungsfehler. #include <array> #include <span> int main() { constexpr int carray[3] = { 0, 1, 2 }; …
11 c++  constexpr  c++20 



5
Wie zwischen assert () und static_assert () zu versenden, hängt davon ab, ob im constexpr-Kontext?
In C ++ 11 constexpr-Funktionen ist eine zweite Anweisung wie eine assert()nicht möglich. A static_assert()ist in Ordnung, würde aber nicht funktionieren, wenn die Funktion als "normale" Funktion aufgerufen wird. Der Komma-Operator könnte kommen, um wrto zu helfen. Das assert()ist aber hässlich und einige Tools spucken Warnungen darüber aus. Betrachten Sie …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.