Nach bool templateisieren
-
Hey,
template<bool B> void foo() { if (B) { //... } else { //... } }Ist der Compiler in diesem Fall so schlau, den richtigen Zweig zur Compilezeit zu waehlen oder wird die Verzweigung immer erst zur Laufzeit evaluiert?
-
Compiletime. Muss er nicht. Wird er aber,
-
Kommt auf den Compiler an. Wie mein Vorposter sagt muss das nicht geschehen, wird aber, wenn du einen mehr oder weniger aktuellen compiler hast.
-
Wieso entfernst du es nicht gleich mit Templatespezialisierung?
template<bool> void foo() { std::cout << "true" << std::endl; } template<> void foo<false>() { std::cout << "false" << std::endl; } int main() { foo<true>(); foo<false>(); }Grüssli
-
Gut zu wissen, danke.
Wieso entfernst du es nicht gleich mit Templatespezialisierung?
Stimmt. Gute idee.