Ich habe Probleme mit constexpr
. Das Buch C++ Primer zeigt eine Codezeile:Verwendung der constexpr-Funktion, bevor die Definition fehlschlägt
constexpr int sz = size(); // only size() is a constexpr function
// this code is right
jedoch das Buch nicht ein spezielles Beispiel nicht geben. Also versuche ich den folgenden Code von mir:
#include <iostream>
constexpr int fun();
int main()
{
constexpr int f = fun();
std::cout << f << std::endl;
}
constexpr int fun()
{
return 3;
}
Aber mein Compiler sagte fun()
nicht definiert ist.
Wenn ich constexpr
in const
ändern, es funktioniert gut, und wenn ich den Code ändern die constexpr Funktion vor der Verwendung zu definieren:
#include <iostream>
constexpr int fun()
{
return 3;
}
int main()
{
constexpr int f = fun();
std::cout << f << std::endl;
}
Es funktioniert auch gut. Kann mir jemand sagen warum?
Welchen Compiler benutzen Sie? – kvorobiev
@kvorobiev clang, linux – icecity96
Welche Version von clang? – kvorobiev