Ist es möglich, faktorielle Zahlen zur Kompilierzeit zu berechnen, aber ohne Enumerationen?

8

Ich möchte faktoriell zur Kompilierzeit berechnen. Ich habe einen Weg gefunden, das Problem zu lösen, aber ich möchte wissen, ob es eine andere Lösung für dieses Problem gibt, ohne enum s zu verwenden. Hier die Lösung mit enum s.

%Vor%

Wenn es keine andere Lösung gibt, beschreiben Sie bitte, warum die enum s müssen.

    
Samvel Hovsepyan 08.07.2011, 07:23
quelle

3 Antworten

10

Es gibt zwar alternative Schreibweisen, aber das ist so geschrieben, weil mehr Compiler diese Schreibweise akzeptieren. Die Sprache unterstützt Konstanten vom Typ integral-type mit einer Inline-Initialisierung, aber einige Compiler entsprechen in dieser Hinsicht nicht dem Standard. Bei compilers, die in dieser Hinsicht kompatibel sind, funktioniert das folgende gut:

%Vor%     
David Hammen 08.07.2011, 07:30
quelle
7

Ersetzen,

%Vor%

mit,

%Vor%

enum s sind Muss, weil sie zur Kompilierungszeit aufgelöst werden sollen. Dadurch wird sichergestellt, dass das von Ihnen berechnete Ergebnis zur Kompilierungszeit erstellt wurde. Ein anderer solcher Typ ist static int const (bedeutet einen ganzzahligen Typ).

Zur Veranschaulichung:

%Vor%     
iammilind 08.07.2011 07:24
quelle
7
___ qstntxt ___

Ich möchte faktoriell zur Kompilierzeit berechnen. Ich habe einen Weg gefunden, das Problem zu lösen, aber ich möchte wissen, ob es eine andere Lösung für dieses Problem gibt, ohne %code% s zu verwenden. Hier die Lösung mit %code% s.

%Vor%

Wenn es keine andere Lösung gibt, beschreiben Sie bitte, warum die %code% s müssen.

    
___ antwort6621253 ___

Alternativ können Sie statische Konst-Mitglieder verwenden:

%Vor%     
___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ tag123templates ___ Das Templates-Tag wird in mehreren Kontexten verwendet: generische Programmierung (insbesondere C ++) und Daten- / Dokumentgenerierung mithilfe von Template-Engines. ___ answer6621311 ___

Es gibt zwar alternative Schreibweisen, aber das ist so geschrieben, weil mehr Compiler diese Schreibweise akzeptieren. Die Sprache unterstützt Konstanten vom Typ integral-type mit einer Inline-Initialisierung, aber einige Compiler entsprechen in dieser Hinsicht nicht dem Standard. Bei compilers, die in dieser Hinsicht kompatibel sind, funktioniert das folgende gut:

%Vor%     
___ answer6621246 ___

Ersetzen,

%Vor%

mit,

%Vor%

%code% s sind Muss, weil sie zur Kompilierungszeit aufgelöst werden sollen. Dadurch wird sichergestellt, dass das von Ihnen berechnete Ergebnis zur Kompilierungszeit erstellt wurde. Ein anderer solcher Typ ist %code% (bedeutet einen ganzzahligen Typ).

Zur Veranschaulichung:

%Vor%     
___ qstnhdr ___ Ist es möglich, faktorielle Zahlen zur Kompilierzeit zu berechnen, aber ohne Enumerationen? ___
Kerrek SB 08.07.2011 07:25
quelle

Tags und Links