Ich möchte eine nicht konstante Variable in eine konstante Variable umwandeln. Ich habe versucht, mit const_cast, aber immer noch das folgende Programm gibt Fehler, dass 'Bitsize1' kann nicht in einem konstanten Ausdruck erscheinen. Was mache ich falsch ?C++: Casting nicht konstant bis konstant
#include <string>
#include <bitset>
#include <iostream>
using namespace std;
int main(){
int l = 3; // taken input from user
int bitsize2 = (l * 2);
int bitsize1 = const_cast<int&>(bitsize2);
string temp = "100101";
bitset<const_cast<int&>(bitsize2)> baz (temp);
cout << baz;
return 0;
}
Vorlagenparameter müssen zum Zeitpunkt der Kompilierung bekannt sein. –
Sie werden verwirrt zwischen einem konstanten Ausdruck und einem konstanten Objekt. 'const' dient dazu, ein Objekt nicht modifizierbar zu machen,' consxpr' dient dazu, einen Wert zur Kompilierzeit verfügbar zu machen. –